JZOJ 4735. 最小圈
Description
Input
以下m行,每行3个数,表示边连接的信息
Output
Sample Input
输入1:
4 5
1 2 5
2 3 5
3 1 5
2 4 3
4 1 3
输入2:
2 2
1 2 -2.9
2 1 -3.1
Sample Output
输出1:
3.666667
输出2:
-3.000000
Data Constraint
60%: n<=1000 m<=5000
100%: n<=3000 m<=10000
abs(Wi,j)<=10^5
#include <cstdio>
#include <cstring>
#include <iostream>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define fx(i,x) for(int i=ls[x];i;i=e[i].next)
#define fill(i,x) memset(i,x,sizeof(i))
#define M 10007
using namespace std;
const double eps=1e-;
double l=-M*,r=M*,mid;
double d[M];
int n,m,ls[M],tot;
struct edge{
int to,next;
double w;
}e[M];
bool judge,flag[M]; inline void Add(int x,int y,double z){
e[++tot].to=y;
e[tot].next=ls[x];
e[tot].w=z;
ls[x]=tot;
} inline void Spfa(int x){
flag[x]=;
fx(i,x){
int v=e[i].to;
if(d[x]+e[i].w-mid<d[v]){
if(flag[v]){
judge=;
return;
}
d[v]=d[x]+e[i].w-mid;
Spfa(v);
if(judge) return;
}
}
flag[x]=;
} inline bool Calc(){
fill(d,);
fill(flag,);
judge=;
rep(i,,n){
Spfa(i);
if (judge) return ;
}
return ;
} void Work(){
for(;l+eps<r;){
mid=(l+r)/;
if (Calc()) l=mid; else r=mid;
}
printf("%.6lf",l);
} void Init(){
scanf("%d%d",&n,&m);
rep(i,,m){
int u,v;
double w;
scanf("%d%d%lf",&u,&v,&w);
Add(u,v,w);
}
} int main(){
Init();
Work();
}
JZOJ 4735. 最小圈的更多相关文章
- bzoj 1486: [HNOI2009]最小圈 dfs求负环
1486: [HNOI2009]最小圈 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1022 Solved: 487[Submit][Status] ...
- BZOJ 1486: [HNOI2009]最小圈( 二分答案 + dfs判负圈 )
二分答案m, 然后全部边权减掉m, 假如存在负圈, 那么说明有平均值更小的圈存在. 负圈用dfs判断. ------------------------------------------------ ...
- [HNOI2009]最小圈
题目描述 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除以k,现要求其中的最小值 输入输出格式 输入格式: 第一行2个正整数,分别为 ...
- BZOJ_1486_[HNOI2009]最小圈_01分数规划
BZOJ_1486_[HNOI2009]最小圈_01分数规划 Description Input Output Sample Input 4 5 1 2 5 2 3 5 3 1 5 2 4 3 4 1 ...
- [HNOI2009]最小圈 (二分答案+负环)
题面:[HNOI2009]最小圈 题目描述: 考虑带权的有向图\(G=(V,E)\)以及\(w:E\rightarrow R\),每条边\(e=(i,j)(i\neq j,i\in V,j\in V) ...
- 【题解】 [HNOI2009] 最小圈 (01分数规划,二分答案,负环)
题目背景 如果你能提供题面或者题意简述,请直接在讨论区发帖,感谢你的贡献. 题目描述 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除 ...
- bzoj千题计划227:bzoj1486: [HNOI2009]最小圈
http://www.lydsy.com/JudgeOnline/problem.php?id=1486 二分答案 dfs版spfa判负环 #include<queue> #include ...
- 洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划
洛谷4951 地震 #include<iostream> #include<cstdio> #include<algorithm> #define go(i,a,b ...
- 【BZOJ1486】[HNOI2009]最小圈 分数规划
[BZOJ1486][HNOI2009]最小圈 Description Input Output Sample Input 4 5 1 2 5 2 3 5 3 1 5 2 4 3 4 1 3 Samp ...
随机推荐
- Spring Boot 测试 junit
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.ann ...
- select 下拉框的复选
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdUAAAFSCAIAAAArbtLAAAAgAElEQVR4nOydd1gUWaK3Z2/YvXd3v7 ...
- 【密码学】SHA1算法实现及详解
1 SHA1算法简介 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digit ...
- pat1098. Insertion or Heap Sort (25)
1098. Insertion or Heap Sort (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...
- Docker | 第三章:Docker常用命令
前言 上一章节,简单介绍了在CentOS下的Docker的安装过程,以及运行了一个官方提供的Hello,World镜像运行了第一个Docker.就像上一章中,验证Docker是否安装成功,我们执行的是 ...
- 在Azure上搭架***代理服务器
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在Azure上搭架***代理服务器.
- Matlab之数据处理
写在前面的,软件不太强大,每次保存都需要生成rec和dark的文件,在处理是只需要一个就行了,所有网上查看了下运用批处理的命令去掉多余的文件: 解决办法:windows命令模式下CMD进入文件的目录, ...
- GitHub上易于高效开发的Android开源项目TOP20--适合新手
1. android-async-http android-async-http是Android上的一个异步.基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上. 2. an ...
- [LeetCode]9. Palindrome Number回文数
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same back ...
- iQuery stop()
jQuery stop() 方法 jQuery stop() 方法用于停止动画或效果,在它们完成之前. stop() 方法适用于所有 jQuery 效果函数,包括滑动.淡入淡出和自定义动画. 语法 $ ...