BZOJ 1486 [HNOI2009] 最小圈
来源:互联网 发布:c语言结构体 编辑:程序博客网 时间:2024/05/02 01:03
Description
Input
Output
Sample Input
4 5
1 2 5
2 3 5
3 1 5
2 4 3
4 1 3
1 2 5
2 3 5
3 1 5
2 4 3
4 1 3
Sample Output
3.66666667
HINT
Source
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
01分数规划+dfs/SPFA判负环~
根据01分数规划,我们二分寻找能使sum{(a[i]-b[i]*k)*x[i]}==0的k值,然后判负环,如果有负环,就增大k值。
注意这道题卡SPFA判负环,只能用类似于dfs+SPFA的判断方法,详见代码~
#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define eps 1e-10int n,m,x,y,fi[3001],w[20001],ne[20001],cnt;bool b[3001];double z,v[20001],ll[20001],mid,dis[3001];void add(int u,int vv,double val){w[++cnt]=vv;ne[cnt]=fi[u];fi[u]=cnt;v[cnt]=val;}bool dfs(int u){b[u]=1;for(int i=fi[u];i;i=ne[i]) if(dis[w[i]]>ll[i]+dis[u]) {if(b[w[i]]){b[u]=0;return 1;}dis[w[i]]=ll[i]+dis[u];if(dfs(w[i])){b[u]=0;return 1;} }b[u]=0;return 0;}bool che(){memset(dis,0,sizeof(dis));for(int i=1;i<=cnt;i++) ll[i]=v[i]-mid;for(int i=1;i<=n;i++) if(dfs(i)) return 1;return 0; }int read(){int totnum=0,f=1;char ch=getchar();while(ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0' && ch<='9') {totnum=(totnum<<1)+(totnum<<3)+ch-'0';ch=getchar();}return totnum*f; }int main(){n=read();m=read();for(int i=1;i<=m;i++) x=read(),y=read(),scanf("%lf",&z),add(x,y,z);double l=-1e7,r=1e7;while(r-l>=eps){mid=(l+r)*1.0/2.0;if(che()) r=mid;else l=mid; }printf("%.8lf\n",mid);return 0;}
1 0
- 【BZOJ 1486】 [HNOI2009]最小圈
- BZOJ 1486: [HNOI2009]最小圈
- [BZOJ 1486][HNOI2009]最小圈
- BZOJ 1486: [HNOI2009]最小圈
- 【bzoj 1486】 [HNOI2009]最小圈
- BZOJ 1486 [HNOI2009] 最小圈
- bzoj 1486: [HNOI2009]最小圈
- bzoj 1486: [HNOI2009]最小圈
- BZOJ 1486: [HNOI2009]最小圈|分数规划
- BZOJ 1486: [HNOI2009]最小圈 分数规划
- 1486: [HNOI2009]最小圈
- BZOJ 1486 HNOI2009 最小圈 二分答案+DFS
- BZOJ 1486: [HNOI2009]最小圈 01分数规划 dfs_spfa判负环
- [BZOJ]1486: [HNOI2009]最小圈 01分数规划+spfa
- 1486: [HNOI2009]最小圈 二分+dfs
- HNOI2009 最小圈
- [bzoj1486][HNOI2009]最小圈
- bzoj1486【HNOI2009】最小圈
- 对spring web启动时IOC源码研究
- 关于localhost404打不开
- 约瑟夫环 C语言 单循环链表
- POJ 2513
- 哈夫曼文件压缩源文件+头文件
- BZOJ 1486 [HNOI2009] 最小圈
- Linux下Git的初步使用指南
- JavaScript学习笔记第二天
- JAVA 泛型
- 北航计算机机试13简单版八皇后
- IFE 斌斌学院(js)
- 排序算法
- URL重写技术
- C++Primer第五版 第十六章习题答案(61~67)