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,一经查实,立即删除!

相关文章

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

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

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

在Membership系列的最后一篇引入了ASP.NET Identity&#xff0c;看到大家对它还是挺感兴趣的&#xff0c;于是来一篇详解登录原理的文章。本文会涉及到Claims-based&#xff08;基于声明&#xff09;的认证&#xff0c;我们会详细介绍什么是Claims-based认证&#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 的语法很简单、简洁而且功能强大&…

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

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

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

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…

装了卡巴后VS 2003不能启动调试错误的解决方案

机器上同时安装vs2003和 vs2005 vs2005能调试&#xff0c;vs2003不能调试 &#xff0c;提示不在Debug Users权限组 经过一周时间的分析查找&#xff0c;知道问题原因 是ie浏览器的安全设置的问题&#xff0c;没有把当前用户信息带到IIS中。 一定是http://localhost,不能是local…

阿里、腾讯都在用的腰靠,拯救你20岁的身体60岁的腰!

▲ 点击查看在之前小木推荐“德国MINICUTE人体工学腰垫”受到了大家一致的好评和争相购买。小木为什么推荐这一款原因是&#xff1a;据统计&#xff0c;我国腰椎病患者已经突破2亿人。30~40岁人群中&#xff0c;患有颈腰椎病的占比59.1%&#xff01;而且有着越来越年轻化的趋…

Hadoop会遇到的45个问题,你确定你了解吗?

本文这里为大家分享Hadoop集群设置中经常出现的一些问题。 在工作生活中&#xff0c;有些问题非常简单&#xff0c;但往往搜索半天也找不到所需的答案&#xff0c;在Hadoop的学习与使用过程中同样如此。关注WX公众号&#xff1a;大数据技术工程师。可免费领取hadoop学习资料。这…

不同国家的视力表也不一样!| 今日趣图

全世界只有3.14 %的人关注了青少年数学之旅微信聊天的时候女生说洗澡去了你要怎么回答&#xff1f;&#xff08;图源二营长笑了&#xff0c;侵权删&#xff09;不同国家的视力表也不一样&#xff01;中国的视力表是这样的日本的视力表是这样的美国的视力表是这样的&#xff08;…

自定义EventSource(三)IncrementingEventCounter

在自定义EventSource时&#xff0c;可以使用四种EventCounter&#xff1a;EventCounter&#xff1a;统计指标收集器&#xff0c;比如平均值&#xff0c;最大值&#xff0c;最小值PollingCounter&#xff1a;自定义统计指标收集器&#xff0c;通过自定义统计方法的方式实现对指标…

为什么应该用record来定义DTO

DTODTO是数据传输对象&#xff08;Data Transfer Object&#xff09;的简称&#xff0c;主要用作在进程之间传送数据。DTO的特点是它不包含任何业务逻辑或行为。下面是一个典型的DTO定义&#xff1a;public class UserDto {public int Id { get; set; }public string Name { ge…

笑翻了!想象的论文答辩和真实的论文答辩

全世界只有3.14 %的人关注了青少年数学之旅大学答辩实录&#xff0c;要不要这么真实&#xff01;【1】【2】【3】【4】【5】【6】【7】【8】【9】综合来源&#xff1a;冷兔、中外学术情报部分素材源于网络&#xff0c;版权归原作者所有如有侵权请留言联系删除&#xff0c;感谢合…

c++与java,有什么区别?

什么是C 语言&#xff1f; C 是一种计算机编程语言&#xff0c;包含C编程语言的特性以及Simula67&#xff08;第一个面向对象语言&#xff09;。C 引入了Class和Objects的概念。 它封装了高级和低级语言功能。因此&#xff0c;它被视为一种中级语言。之前它被称为“C with cl…