hdu 1839 Delay Constrained Maximum Capacity Path 二分下限+最短路spfa
来源:互联网 发布:黑魔棒淘宝 编辑:程序博客网 时间:2024/06/05 12:03
题目链接
题意:给出n个点和m条边,给出每条路的容量和时间。路径的容量为路径上边的容量的最小值。求满足总时间小于T的情况下的最大路径容量。
用二分枚举路径的容量下限,只取容量大于枚举值的边求最短路。若此情况下的最短路小于T,那么更新答案,并提高容量下限。否则减小容量下限。
#include <iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>#define N 11000#define M 110000#define INF 0x7ffffffusing namespace std;struct node{ int to,next,w,t;}e[M];int d[N],v[N],T,n,m,cnt,head[N];void add_edge(int u,int v,int w,int t){ e[cnt].to=v; e[cnt].next=head[u]; e[cnt].w=w; e[cnt].t=t; head[u]=cnt++;}int spfa(int w){ for(int i=1;i<=n;i++) d[i]=INF,v[i]=0; queue<int> q; q.push(1); v[1]=1; d[1]=0; while(!q.empty()) { int c=q.front(); q.pop(); v[c]=0; for(int i=head[c];i!=-1;i=e[i].next) { int u=e[i].to; if(e[i].w>=w&&d[u]>d[c]+e[i].t) { d[u]=d[c]+e[i].t; if(!v[u]) v[u]=1,q.push(u); } } } if(d[n]>T) return 0; return 1;}int main(){ int c; cin>>c; while(c--) { cin>>n>>m>>T; memset(head,-1,sizeof(head)); cnt=0; int maxw=0; for(int i=0;i<m;i++) { int u,v,w,tt; scanf("%d%d%d%d",&u,&v,&w,&tt); add_edge(u,v,w,tt); add_edge(v,u,w,tt); maxw=max(maxw,w); } int l=0,r=maxw,ans=0; while(l<=r) { int mid=(l+r)/2; if(spfa(mid)) l=mid+1,ans=mid; else r=mid-1; } cout<<ans<<endl; }}
1 0
- hdu 1839 Delay Constrained Maximum Capacity Path 二分下限+最短路spfa
- HDU 1839 Delay Constrained Maximum Capacity Path(二分+最短路)
- HDU-1839 Delay Constrained Maximum Capacity Path 最短路+二分
- HDU 1839 Delay Constrained Maximum Capacity Path 最短路+二分
- 【HDU】1839 Delay Constrained Maximum Capacity Path 二分+最短路
- HDU 1839 Delay Constrained Maximum Capacity Path 最短路+二分
- HDU 1839 Delay Constrained Maximum Capacity Path(最短路+二分)
- hdu 1839 Delay Constrained Maximum Capacity Path 二分+最短路
- HDU 1839 Delay Constrained Maximum Capacity Path (二分最短路)
- hdu 1839 Delay Constrained Maximum Capacity Path 二分+ spfa
- HDU 1839 Delay Constrained Maximum Capacity Path(二分+SPFA)
- hdu 1839 Delay Constrained Maximum Capacity Path【二分+SPFA】
- hdu 1839 Delay Constrained Maximum Capacity Path(二分+SPFA)
- HDU-1839 Delay Constrained Maximum Capacity Path 最短路
- HDU 1839 Delay Constrained Maximum Capacity Path(二分+最短路)
- 【HDU 1839】 Delay Constrained Maximum Capacity Path(二分+最短路)
- hdu 1839 Delay Constrained Maximum Capacity Path(最短路+二分)
- HDU 1839 Delay Constrained Maximum Capacity Path(最短路+二分)
- AndroidUI之注册界面的实现分析
- Android编程学习笔记 之 BroadcastReceiver组件
- 考试总结
- [HDU 1024] Max Sum Plus Plus (DP)
- Java并发编程:线程池的使用
- hdu 1839 Delay Constrained Maximum Capacity Path 二分下限+最短路spfa
- hdu 3586 Information Disturbing(树形dp)
- Mysql 删除用户 问题
- HDOJ 2203 亲和串
- Android 通过WebView和js的交互
- 剑指offer 22 从上往下打印二叉树
- 机器学习第二篇——线性回归与梯度下降
- NSInvocation慢慢整理
- HDU 1034 Candy Sharing Game