当前位置: 首页 > news >正文

AtCoder Beginner Contest 324(F)

AtCoder Beginner Contest 324

F Beautiful Path

需要一点思维的转化,一时竟然没想到。

题意

给定大小为 n n n 的有向图, m m m 条边,每条边有 b i , c i b_i,c_i bi,ci 两个属性,需要找到一条从 1 ∼ n 1\sim n 1n 的路径使得 w i = ( b 1 + b 2 + ⋯ + b k ) / ( c 1 + c 2 + ⋯ + c k ) w_i = (b_1+b_2+\dots+b_k) / (c_1+c_2+\dots+c_k) wi=(b1+b2++bk)/(c1+c2++ck) 最大。题目保证路径一定存在且无环。

思路

初看一时没思路,写了个到达 u u u 点时,以 w i w_i wi 的最大值为最优跑拓扑排序,这样显然是不对的,例如: 1 1 → 3 2 = 1 + 3 1 + 2 \frac 11\rightarrow \frac32 = \frac{1+3}{1+2} 1123=1+21+3 会比 1 1 → 1 1 = 1 + 1 1 + 1 \frac11\rightarrow \frac11=\frac{1+1}{1+1} 1111=1+11+1 更优,但是若是下一条边是 100 1 \frac{100}1 1100,两条路径更优的是 1 + 1 + 100 1 + 1 + 1 > 1 + 3 + 100 1 + 2 + 1 \frac{1+1+100}{1+1+1}>\frac{1+3+100}{1+2+1} 1+1+11+1+100>1+2+11+3+100.

这里需要转换一下思路:
求路径使得 max ⁡ ( b 1 + b 2 + b 3 ) / ( c 1 + c 2 + c 3 ) = w i \max(b_1 + b_2 + b_3) / (c_1 + c_2 + c_3) = w_i max(b1+b2+b3)/(c1+c2+c3)=wi
设答案为 r e s res res
( b 1 + b 2 + b 3 ) / ( c 1 + c 2 + c 3 ) = r e s (b_1 + b_2 + b_3) / (c_1 + c_2 + c_3) = res (b1+b2+b3)/(c1+c2+c3)=res
( b 1 + b 2 + b 3 ) = ( c 1 + c 2 + c 3 ) ∗ r e s (b_1 + b_2 + b_3) = (c_1 + c_2 + c_3) * res (b1+b2+b3)=(c1+c2+c3)res
b 1 − c 1 ∗ r e s + b 2 − c 2 ∗ r e s + b 3 − c 3 ∗ r e s = 0 b_1 - c_1 * res + b_2 - c_2 * res + b_3 - c_3 * res = 0 b1c1res+b2c2res+b3c3res=0
上式将 = = = 改成 ≥ \geq 显然也成立,于是就有了单调性,二分答案求解。

用拓扑排序时有个小坑点,从 1 1 1 出发可能有些节点到达不了,需要清除这些点的度。或者由于一定是小编号 → \rightarrow 大编号,可以直接循环求解。

代码

#include <bits/stdc++.h>
using namespace std;#define ll long long
#define double long doubleconst int N = 2e5 + 10;struct node{int v, b, c;
};
vector<node> g[N];int n, m, d[N], t[N];
double f[N];
bool topu(double x){queue<int> q;for(int i = 1; i <= n; i ++){t[i] = d[i];f[i] = -1e10;}q.push(1);f[1] = 0.0;while(!q.empty()){int u = q.front(); q.pop();for(auto [v, b, c] : g[u]){f[v] = max(f[v], f[u] + (double)b - (double)c * x);t[v] --;if(!t[v]) q.push(v);}}return f[n] >= 0;
}int vis[N];
void dfs(int u){if(vis[u]) return ;vis[u] = 1;for(auto [v, a, b] : g[u]) dfs(v);
}int main(){ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);cin >> n >> m;for(int i = 1; i <= m; i ++){int u, v, b, c;cin >> u >> v >> b >> c;g[u].push_back({v, b, c});d[v] ++;}dfs(1);for(int i = 1; i <= n; i ++){ // 清除无法到达的节点的度if(vis[i]) continue ;for(auto [v, a, b] : g[i]) d[v] --;}double l = 0, r = 2e9;for(int i = 1; i <= 100; i ++){double mid = (l + r) / 2;if(topu(mid)) l = mid;else r = mid;}cout << fixed << setprecision(20) << l <<"\n";return 0;
}

G Generate Arrays(待补)

题意

思路

代码

相关文章:

AtCoder Beginner Contest 324(F)

AtCoder Beginner Contest 324 F Beautiful Path 需要一点思维的转化&#xff0c;一时竟然没想到。 题意 给定大小为 n n n 的有向图&#xff0c; m m m 条边&#xff0c;每条边有 b i , c i b_i,c_i bi​,ci​ 两个属性&#xff0c;需要找到一条从 1 ∼ n 1\sim n 1∼n…...

LuatOS-SOC接口文档(air780E)-- i2s - 数字音频

示例 -- 这个库属于底层适配库, 具体用法请查阅示例 -- demo/multimedia -- demo/tts -- demo/record常量 常量 类型 解释 i2s.MODE_I2S number I2S标准&#xff0c;比如ES7149 i2s.MODE_LSB number LSB格式 i2s.MODE_MSB number MSB格式&#xff0c;比如TM8211 …...

瑞芯微RK3568核心板在边缘服务器产品中的应用-迅为电子

迅为RK3568核心板在边缘服务器产品中可以发挥关键作用&#xff0c;为边缘计算应用提供高性能的计算和多媒体处理能力。边缘服务器通常用于处理和存储数据&#xff0c;执行本地计算任务&#xff0c;并支持与远程云服务的通信。以下是RK3568核心板在边缘服务器产品中的应用方案&a…...

pg ash自制版 pg_active_session_history

一、 实现功能 由于pgsentinel插件存在严重的内存占用问题&#xff0c;本篇改为自行实现&#xff0c;但其语句仍可以参考pgsentinel插件。PostgreSQL ash —— pgsentinel插件 学习与踩坑记录_CSDN博客 v1.0 根据pg 14版本设计及测试&#xff0c;仅支持收集主库信息。默认每10秒…...

Elasticsearch系列组件:Kibana无缝集成的数据可视化和探索平台

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…...

phpcms_v9模板制作及二次开发常用代码

0:调用最新文章&#xff0c;带所在版块 {pc:get sql"SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url as curl,a.id FROM v9_news a, v9_category b WHERE a.catid b.catid ORDER BY a.id DESC " num"15" cache"300"} {lo…...

自然语言处理(NLP)-概述

NLP 一、什么是自然语言处理&#xff08;NLP&#xff09;二、NLP的发展三、相关理论1 语言模型2 词向量表征和语义分析3 深度学习 一、什么是自然语言处理&#xff08;NLP&#xff09; 什么是自然语言处理 二、NLP的发展 三、相关理论 1 语言模型 序列数据形式多样&#xf…...

Python开发者的宝典:CSV和JSON数据处理技巧大公开!

更多资料获取 &#x1f4da; 个人网站&#xff1a;涛哥聊Python 在Python中处理CSV和JSON数据时&#xff0c;需要深入了解这两种数据格式的读取、写入、处理和转换方法。 下面将详细介绍如何在Python中处理CSV和JSON数据&#xff0c;并提供一些示例和最佳实践。 CSV数据处理…...

Unity中Commpont类获取子物体的示例

// 本脚本用于演示Component类 方法 //任何一个组件 都可以从游戏物体获取或者从其父对象哪里 子对象哪里获取&#xff0c;一个组件也可以拿到同一个物体上的其他组件 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Component…...

【Vue面试题二十一】、Vue中的过滤器了解吗?过滤器的应用场景有哪些?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;Vue中的过滤器了解吗&am…...

Unity 3D基础——缓动效果

1.在场景中新建两个 Cube 立方体&#xff0c;在 Scene 视图中将两个 Cude的位置错开。 2.新建 C# 脚本 MoveToTarget.cs&#xff08;写完记得保存&#xff09; using System.Collections; using System.Collections.Generic; using UnityEngine;public class MoveToTarget : M…...

高校教务系统登录页面JS分析——南京邮电大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍南京邮电大学教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一…...

css实现排行榜样式(vue组件)

先看效果图&#xff1a; <template><div class"lawyer-refund-wrap"><div class"content"><divv-for"(item, index) in dataList" :key"index":style"{width: calc(100% - ${(index 1) * 10}px)}"c…...

I2VGen-XL高清图像生成视频大模型

本项目I2VGen-XL旨在解决根据输入图像生成高清视频任务。I2VGen-XL由达摩院研发的高清视频生成基础模型之一&#xff0c;其核心部分包含两个阶段&#xff0c;分别解决语义一致性和清晰度的问题&#xff0c;参数量共计约37亿&#xff0c;模型经过在大规模视频和图像数据混合预训…...

Angular知识点系列(1)-每天10个小知识

目录 1. Angular工作原理和与其他前端框架的区别2. 使用Angular的经验和最喜欢的特性3. 使用的最复杂的Angular组件或指令4. Angular的依赖注入系统和示例5. Angular的模块和组件生命周期6. 使用Angular路由和路由保护7. 在Angular应用中实现延迟加载8. 处理Angular应用中的状态…...

【从0开发】百度BML全功能AI开发平台【实操:以部署情感分析模型为例】

目录 一、全功能AI开发平台介绍二、AI项目落地应用流程&#xff08;以文本分类为例&#xff09;2-0、项目开始2-1、项目背景2-2、数据准备介绍2-3、项目数据2-4、建模调参介绍2-5、项目的建模调参2-6、开发部署2-7、项目在公有云的部署 附录&#xff1a;调用api代码总结 一、全…...

源码解析FlinkKafkaConsumer支持punctuated水位线发送

背景 FlinkKafkaConsumer支持当收到某个kafka分区中的某条记录时发送水位线&#xff0c;比如这条特殊的记录代表一个完整记录的结束等&#xff0c;本文就来解析下发送punctuated水位线的源码 punctuated 水位线发送源码解析 1.首先KafkaFetcher中的runFetchLoop方法 public…...

vue3学习(五)--- 父子组件传值

文章目录 defineProps普通写法TS写法 defineEmits普通写法TS写法 defineExpose defineProps 和 defineEmits 都是只能在 <script setup> 中使用的编译器宏。他们不需要导入&#xff0c;且会随着 <script setup> 的处理过程一同被编译掉。 defineProps 接收父组件传…...

寻找AI时代的关键拼图,从美国橡树岭国家实验室读懂AI存力信标

超算&#xff0c;是计算产业的明珠&#xff0c;是人类探索未知的航船。超算的发展与变化&#xff0c;不仅代表着各个国家与地区间的科技竞争力&#xff0c;更将作为趋势风向标&#xff0c;影响整个数字化体系的走向。 在目前阶段&#xff0c;超算与AI计算的融合是大势所趋。为了…...

多线程并发篇---第十二篇

系列文章目录 文章目录 系列文章目录一、说说ThreadLocal原理?二、线程池原理知道吗?以及核心参数三、线程池的拒绝策略有哪些?一、说说ThreadLocal原理? hreadLocal可以理解为线程本地变量,他会在每个线程都创建一个副本,那么在线程之间访问内部 副本变量就行了,做到了…...

qstock量化分析:3行代码实现多市场数据获取与可视化

qstock量化分析&#xff1a;3行代码实现多市场数据获取与可视化 【免费下载链接】qstock qstock由“Python金融量化”公众号开发&#xff0c;试图打造成个人量化投研分析包&#xff0c;目前包括数据获取&#xff08;data&#xff09;、可视化(plot)、选股(stock)和量化回测&…...

4个步骤实现跨设备数据同步:开源工具Kazumi的WebDAV集成方案

4个步骤实现跨设备数据同步&#xff1a;开源工具Kazumi的WebDAV集成方案 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕&#xff0c;支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi …...

AO3镜像站使用指南:5分钟轻松访问全球同人创作宝库

AO3镜像站使用指南&#xff1a;5分钟轻松访问全球同人创作宝库 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site 还在为无法访问Archive of Our Own&#xff08;AO3&#xff09;而烦恼吗&#xff1f;AO3镜像站项目为你提…...

3大突破:让网课学习效率提升300%的智能方案

3大突破&#xff1a;让网课学习效率提升300%的智能方案 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course 在数字化学习普及的今天&#xff0c;职业教育学生平均每…...

一张照片秒变3D模型!用Splatter Image和3D高斯溅射快速上手单视图重建

从单张照片到3D模型&#xff1a;Splatter Image技术实战指南 想象一下&#xff0c;你刚在二手市场淘到一个绝版手办&#xff0c;想为它创建数字档案&#xff1b;或是设计师客户临时需要将一张产品照片转为3D模型。传统流程需要专业设备扫描或手工建模&#xff0c;耗时数小时甚…...

ViT图像分类-中文-日常物品完整指南:4090D单卡环境配置与中文类别映射说明

ViT图像分类-中文-日常物品完整指南&#xff1a;4090D单卡环境配置与中文类别映射说明 想试试用AI模型来识别你手机里的照片吗&#xff1f;比如&#xff0c;拍一张桌上的水杯、键盘或者零食&#xff0c;让模型告诉你它是什么。今天要介绍的这个工具&#xff0c;就能帮你轻松实…...

忍者像素绘卷入门必看:Z-Image-Turbo模型结构精简与推理速度提升原理

忍者像素绘卷入门必看&#xff1a;Z-Image-Turbo模型结构精简与推理速度提升原理 1. 项目概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;专为16-Bit复古游戏美学风格设计。它采用明亮的"云端"视觉设计&#xff0c;为用户提供清爽且…...

Java实现海康萤石摄像头实时监控与视频流获取全攻略

1. 海康萤石摄像头接入前的准备工作 第一次接触海康萤石摄像头开发时&#xff0c;我花了整整两天时间才搞明白整个接入流程。这里把踩过的坑都总结出来&#xff0c;让你少走弯路。首先需要明确的是&#xff0c;萤石开放平台提供了完整的API文档和SDK支持&#xff0c;但实际开发…...

CVE-2024-36401复现

一.漏洞概述 CVE-2024-36401 是 GeoServer 中的一个严重级远程代码执行漏洞&#xff08;CVSS 9.8&#xff09;&#xff0c;允许未经身份验证的远程攻击者在服务器上执行任意代码。该漏洞源于 GeoServer 调用的 GeoTools 库 API 在评估 XPath 表达式时存在不安全处理&#xff0…...

嘉立创PCB打样被加价到170元?手把手教你用STM32H743飞控板案例解决‘拆单嫌疑’

STM32H743飞控板PCB打样避坑指南&#xff1a;如何巧妙应对嘉立创拆单判定 最近不少硬件开发者在使用嘉立创进行STM32H743飞控板PCB打样时&#xff0c;遇到了一个令人头疼的问题——原本33元的4层板打样价格突然飙升到170多元。这种情况往往是由于平台算法误判设计文件存在"…...