P1768 天路(有向图环)
P1768 天路(有向图环)
找到所有环的 最大的sumvsump\dfrac{sum_v}{sum_p}sumpsumv
转化为差分约束问题。
然后用spfa判负环,确定是否有解。
注意本题用dfs 跑spfa,bfs跑会t。
卡常qwq
#include<bits/stdc++.h>
using namespace std;
const int maxn=7007;
struct edge
{int to,v,c;
};
vector<edge>G[maxn];
int n,m;
bool vis[maxn];
double dis[maxn];
bool spfa(double ans,int now)//DFS版的SPFA
{vis[now]=true;for(int i=0;i<G[now].size();i++){edge e=G[now][i];double x=ans*e.c-e.v;//边的权值,根据二分出来的ans进行修改if (dis[e.to]>dis[now]+x){if (vis[e.to]) return false;else{dis[e.to]=dis[now]+x;vis[now]=true;if (!spfa(ans,e.to)) return false;}}}vis[now]=false;//记得要回溯return true;
}
const double eps = 1e-3;
const int inf = 0x3f3f3f3f;
int main()
{scanf("%d %d ",&n,&m);for(int i=1;i<=m;i++){int x,y,v,c;scanf("%d %d %d %d",&x,&y,&v,&c);G[x].push_back((edge){y,v,c});}for(int i=1;i<=n;i++){G[0].push_back((edge){i,0,0});//超级点与每个点都需要联通}double l=0,r=1000001;while(r-l>eps){for(int i=1;i<=n;i++) dis[i]=inf,vis[i]=false;dis[0]=0;vis[0]=true;double mid=(l+r)/2;if (spfa(mid,0)) r=mid;else l=mid;mid=(l+r)/2;}if (l==0) printf("-1\n");else printf("%.1f\n",l);return 0;
}
P1768 天路(有向图环)相关推荐
- 洛谷 P1768 天路
P1768 天路 题目描述 "那是一条神奇的天路诶~,把第一个神犇送上天堂~",XDM先生唱着这首"亲切"的歌曲,一道猥琐题目的灵感在脑中出现了. 和C_SUN ...
- 浴谷 P1768 天路
P1768 天路 题目描述 "那是一条神奇的天路诶~,把第一个神犇送上天堂~",XDM先生唱着这首"亲切"的歌曲,一道猥琐题目的灵感在脑中出现了. 和C_SUN ...
- P1768 天路(最优比率环)
天路 求一个环最大化∑vi∑ci\frac{\sum v_i}{\sum c_i}∑ci∑vi 按照010101分数规划的基本套路来- f(r)=∑vi−r∗∑cif(r)=\sum v_i-r ...
- luogu P1768 天路
题目描述 "那是一条神奇的天路诶~,把第一个神犇送上天堂~",XDM先生唱着这首"亲切"的歌曲,一道猥琐题目的灵感在脑中出现了. 和C_SUNSHINE大神商量 ...
- 洛谷P1768 天路
题目描述 "那是一条神奇的天路诶~,把第一个神犇送上天堂~",XDM先生唱着这首"亲切"的歌曲,一道猥琐题目的灵感在脑中出现了. 和C_SUNSHINE大神商量 ...
- P1768 天路(spfa+二分答案+01分数规划)
题目 题目传送门 输入输出样例 输入样例 5 6 1 2 1 1 4 1 6 2 5 4 8 1 2 3 2 2 5 2 4 1 3 5 6 4 输出样例 2.3 题解 本题我们要求max∑vi∑p ...
- Codeforces-741A-Arpa's loud Owf and Mehrdad's evil plan(找有向图环及最大公倍数计算)
转载于:https://www.cnblogs.com/GrowingJlx/p/6642661.html
- 【图结构专题】有向图
有向图 一. 有向图的相关术语 二. 有向图的存储数据结构 1. 有向图的表示 2. 有向图取反 3. 有向图的实现 4. 符号有向图的实现 三. 有向图中的可达性 1. 使用DFS实现有向图的可达性 ...
- Jozky 刷题目录
文章目录 本目录参考OI-Wiki 还未解决专区 算法基础 枚举 模拟 递归&分治 贪心 排序 前缀和&差分 二分 倍增 构造 搜索 DFS && BFS 双向搜索 启 ...
最新文章
- echarts相关设置
- 【转】学习汇编前你应该知道的知识
- Learn Python 011: while loop
- 【网上收藏】取得网卡mac
- react-native页面间传递数据的几种方式
- ES6精华: 解构运算符 扩展运算符 剩余运算符
- 软件测试:web渗透测试怎样入门!讲透了...
- (1)变量、常量、程序交互、数据类型、bool、基本运算符
- Permission Denial: requires android.permission.CHANGE_CONFIGURATION
- 【9.4】socket模拟http请求
- 另类的缓存技术(存储数据)
- Redis常见配置介绍
- 《zabbix_agent客户端的添加》-5
- 2021年道路运输企业安全生产管理人员考试试卷及道路运输企业安全生产管理人员模拟试题
- Android studio开发一:三个页面简单实现QQ登录界面的延时跳转
- 往十年不忘初心,新十年不负韶华丨万字长文带你完整回顾2020数据技术嘉年华...
- layui table点击tr更改当前行颜色
- java线程锁死是什么
- linux monitor 命令,Process Monitor(简称Procmon)发布Linux版,附使用方法
- 关于数据库having的用法的详细介绍
热门文章
- tkinter学习——button的显示图片文字
- 『网易实习』周记(四)
- codeforces A. Memory and Crow
- vue3非父子组件间传值
- 计算机基础与程序设计真题及答案,02275计算机基础与程序设计201504历年真题及答案...
- 阿里旺旺调用谷歌Chrome浏览器打不开网页崩溃了显示错误代码 RESULT_CODE_MISSING_DATA-完美解决
- java双人对打小游戏
- 安卓 c语言宝典,C语言宝典app下载-C语言宝典下载v1.8.0-西西软件下载
- 如何优雅的设计一个告警系统?远没有你想的那么简单
- 三层交换机到底怎么配置才算高级?老杨手把手示范给你看