UVA 11090 Going in Cycle!! 二分答案 + bellman-ford

求平均值最小的环,如果平均值最小为x,则如果把每条边的权值都减(x+1),那么新图将会有负环,用bellman ford判断。

//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<sstream>
#include<cmath>
#include<climits>
#include<string>
#include<map>
#include<queue>
#include<vector>
#include<stack>
#include<set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
#define pb(a) push(a)
#define INF 0x1f1f1f1f
#define lson idx<<1,l,mid
#define rson idx<<1|1,mid+1,r
#define PI  3.1415926535898
template<class T> T min(const T& a,const T& b,const T& c) {return min(min(a,b),min(a,c));
}
template<class T> T max(const T& a,const T& b,const T& c) {return max(max(a,b),max(a,c));
}
void debug() {
#ifdef ONLINE_JUDGE
#elsefreopen("d:\\in1.txt","r",stdin);freopen("d:\\out1.txt","w",stdout);
#endif
}
int getch() {int ch;while((ch=getchar())!=EOF) {if(ch!=' '&&ch!='\n')return ch;}return EOF;
}struct Edge
{int from,to;double dist;
};
const int maxn=55;
vector<int> g[maxn];
vector<Edge> edge;
double d[maxn];
int inq[maxn];
int inq_cnt[maxn];
int n,m;
void init()
{for(int i=1;i<=n;i++)g[i].clear();edge.clear();
}
void add(int u,int v,double w)
{Edge e=(Edge){u,v,w};edge.push_back(e);g[u].push_back(edge.size()-1);
}
bool negativeCycle(int s)
{queue<int> q;memset(inq,0,sizeof(inq));memset(inq_cnt,0,sizeof(inq_cnt));for(int i=1;i<=n;i++){d[i]=0;inq[i]=1;q.push(i);}while(!q.empty()){int u=q.front();q.pop();inq[u]=0;for(int i=0;i<g[u].size();i++){Edge &e=edge[g[u][i]];if(d[u]+e.dist<d[e.to]){d[e.to]=d[u]+e.dist;if(!inq[e.to]){inq[e.to]=1;q.push(e.to);if(++inq_cnt[e.to]>n)return true;}}}}return false;
}
bool check(double x)
{for(int i=0;i<m;i++)edge[i].dist-=x;int flag=negativeCycle(1);for(int i=0;i<m;i++)edge[i].dist+=x;return flag;
}
int main()
{int t;scanf("%d",&t);for(int ca=1;ca<=t;ca++){scanf("%d%d",&n,&m);init();for(int i=1;i<=m;i++){int u,v;double w;scanf("%d%d%lf",&u,&v,&w);add(u,v,w);}double l=0,r=10000002;//printf("%d\n%d\n",10000000,INF);while(r-l>10e-4){double mid=l+(r-l)/2;if(!check(mid))l=mid;else r=mid;}if(l>10000000)printf("Case #%d: No cycle found.\n",ca);elseprintf("Case #%d: %.2lf\n",ca,l);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/BMan/p/3632934.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突发奇想:flash+.Net+数据库的一种构思

大家好!我是冯波!一个刚刚学了点编程的小伙子&#xff0c;爱好比较广泛。除了像其它男生那样喜欢踢足球&#xff0c;打篮球以外&#xff0c;自己也非常喜欢军事。什么《孙子兵法与三十六计》啊&#xff0c;《三国演义》啊总是百看不厌&#xff0c;就是没看过《武穆遗书》&#…

大数据:数据合集,你想要的或许这里都有

大数据时代&#xff0c;用数据做出理性分析显然更为有力。做数据分析前&#xff0c;能够找到合适的的数据源是一件非常重要的事情&#xff0c;获取数据的方式有很多种&#xff0c;不必局限。下面将从公开的数据集、爬虫、数据采集工具、付费API等等介绍。给大家推荐一些能够用得…

骗人的数学题,那消失的1块钱到底被谁拿走了

全世界只有3.14 %的人关注了青少年数学之旅1、失踪的正方形

小语

1. 正所谓圣人云&#xff1a;“无农不稳&#xff0c;无商不富”&#xff0c;“民无利则国不富&#xff0c;民不富则国无税&#xff0c;国无税则兵不强&#xff0c;兵不强则天下危”。 2. 播下一个行动&#xff0c;收获一种习惯&#xff1b;播下一种习惯&#xff0c;收获一种性格…

MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN

在Membership系列的最后一篇引入了ASP.NET Identity&#xff0c;看到大家对它还是挺感兴趣的&#xff0c;于是来一篇详解登录原理的文章。本文会涉及到Claims-based&#xff08;基于声明&#xff09;的认证&#xff0c;我们会详细介绍什么是Claims-based认证&#xff0c;它与传…

2018年最受大家欢迎的五大机器学习工具和五大数据学习工具

2018年将会是人工智能和机器学习快速发展的一年&#xff0c;有专家表示&#xff1a;相较之下Python比Java更加接地气&#xff0c;也自然而然地成为机器学习的首选语言 在数据科学方面&#xff0c;Python的语法与数学语法最为接近&#xff0c;因此是数学家或经济学家等专业人士…

一步一步SharePoint 2007之四十三:实现自定义Workflow(2)——设置配置文件

下面将记录每一步的操作过程。1、首先采用Reflector等工具找到上一篇文章编译后的DLL的Assembly信息。2、找到并打开C:\Inetpub\wwwroot\wss\VirtualDirectories\9001\web.config文件&#xff0c;在System.Workflow.ComponentModel.WorkflowCompiler节点下的authorizedTypes中&…

动手造轮子 —— dotnet-HTTPie

动手造轮子 —— dotnet-HTTPieIntroHTTPie 是一个基于 Python 的 HTTP CLI 工具&#xff0c;这也意味着想用 HTTPie 就需要安装 Python 环境&#xff0c;不想装 Python 环境&#xff0c;于是想用 C# 也写一个类似的东西&#xff0c;HTTPie 的语法很简单、简洁而且功能强大&…

基于JavaScript技术的横排文字转古书式竖排工具

基于JavaScript技术的横排文字转古书式竖排工具 此工具可以把普通横排文字转换为古典的竖排由右至左的方式显示&#xff0c;并且增加适当的线标&#xff0c;方便读者阅读。您可以在论坛、博客发言之前用这个工具把要发表的文章转化&#xff0c;然后再粘贴到要发表的论坛、博客上…

减肥瘦不下来的原因找到了

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;图源蜻蜓队长&#xff0c;侵权删&#xff09;

新装机器如何修改IP地址

1、Linux系统下如何设置IP地址&#xff1f;我们可以通过命令设定IP的方法&#xff0c;不过此方法的前提条件是用户需root权限。在Linux系统的 /etc/sysconfig/network-script/ifcfg-eth0文件中存放着网卡IP地址配置的相关信息&#xff0c;它的具体格式为&#xff1a;   [root…

大数据、java、python、区块链、人工智能哪个发展前景更好?

在这个信息时代高速发展的情况下&#xff0c;很多人会对自己该往哪个方向发展感到迷茫&#xff0c;下面我就浅显的给大家介绍一下五大流行区域的发展前景。 大数据的发展前景&#xff1a; 当前大数据行业真的是人才稀缺吗? 学了几年后&#xff0c;大数据行业会不会产能过剩…

2020年CNCF和开源项目开发速度

作者&#xff1a;Chris Aniszczyk回到 2017 年&#xff0c;我们洞察[1]了当时速度&#xff08;velocity&#xff09;最高的 30 个开源项目&#xff0c;结果非常有趣。今年&#xff0c;我们想看看 CNCF 的项目速度&#xff0c;以及 2020 年速度最高的 30 个开源项目。此外&#…

automation服务不能创建对象

automation服务器不能创建对象 昨天开机打开Visual Studio.Net&#xff0c;准备新建一个项目&#xff0c;却发生一件奇怪的事情&#xff0c;系统报告“automation服务器不能创建对象”错误。然后在解决方案中只见项目名&#xff0c;而不见项目文件了。真是奇怪。再尝试打开已有…

又一中国机械狗来了:腾跃呼啦圈、原地起跳顶飞皮球,还能自主充电

全世界只有3.14 %的人关注了青少年数学之旅哇这是什么情况竟然腾空后跳过了呼啦圈这是刚刚升级的新机械狗说起机械狗其实浙江大学也搞了一只名叫“绝影”就是刚才咱们看到的那只绝影也迭代好几次了说白了就是一代一代的升级了上楼梯、跑步都是稳如狗退也退的潇洒这只机械狗确切…

一个不错的游戏 - flash webgame

http://122.50.3.133:8080/iah/flash/Main.swf 让自己伤感,难道我永远没机会开发webgme?转载于:https://www.cnblogs.com/vilyLei/archive/2009/06/17/1505174.html

Http协议Get方式获取图片

一、 二、 我试了试&#xff0c;Post方式也行啊&#xff0c;干嘛要叫强调Get方式&#xff0c;费解~~ 答曰&#xff1a;get是向服务器请求数据&#xff0c;post是提交数据。 三、 package com.hpu.test;import java.io.FileOutputStream; import java.io.IOException; import ja…

2018最新大数据职业划分和薪资介绍(大数据从事者须知)

相信接触大数据这个行业的人都知道大数据这个行业涉及很广泛&#xff0c;那么相应的也有很多职业诞生出 来&#xff0c;很多刚刚接触大数据的不知道该往哪方面发展&#xff0c;下面我就给大家介绍一下大数据行业的职业规划。 数据管理类 1&#xff0c;首席数据官 2&#xff…

dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台

CNCF 的博客 发了一篇文章 《Update on CNCF and Open Source Project Velocity 2020》&#xff0c;中文翻译参见 2020年CNCF和开源项目开发速度, 这个数据在2017年发布过一次&#xff0c;这次是3年来的再次更新的数据&#xff0c;往后每6个月就会更新一次数据-open source pro…

icewm使用心得[转]

http://foxshy.bokee.com/2766429.htmlicewm作为一个轻量级的窗口管理器一直深受大家的喜爱&#xff0c;在国外它的流行程度仅次于WindowMaker。对于一个Ddebin用户来说安装它非常简单&#xff0c;只要一个命令&#xff1a;#apt-get install icewm icewm-common iceconf iceme …