codevs 4175 二分+spfa判断
来源:互联网 发布:游族网络最新消息 编辑:程序博客网 时间:2024/06/03 00:08
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<cstdlib>#include<queue>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef long long ll;const int MAXN=100000+10;const int MAXM=500000+10;ll n,m,u,v,s;ll f[MAXN],vi[MAXN];ll len=0,last[MAXN];ll dis[MAXN];bool vis[MAXN]; struct edge{ ll to,val,next; }e[MAXN*2];void add(ll from,ll to,ll val){ e[++len]=(edge){to,val,last[from]}; last[from]=len;}bool check(int mid){ deque<long long>q; memset(vis,0,sizeof(vis)); memset(dis,63,sizeof(dis)); if(vi[u]<=f[mid]) q.push_front(u); else return 0; vis[u]=1;dis[u]=0; while(!q.empty()){ int cur=q.front(); q.pop_front(); vis[cur]=0; for(ll i=last[cur];i;i=e[i].next){ int id=e[i].to; if(vi[id]<=f[mid]){ if(dis[id]>dis[cur]+e[i].val){ dis[id]=dis[cur]+e[i].val; if(!vis[id]){ vis[id]=1; if(!q.empty()){ if(dis[id]>dis[q.front()]) q.push_back(id); else q.push_front(id); } else q.push_front(id); } } } } } if(dis[v]<s) return 1; else return 0; }int main(){ scanf("%lld%lld%lld%lld%lld",&n,&m,&u,&v,&s); fo(i,1,n) { scanf("%lld",&f[i]); vi[i]=f[i]; } sort(f+1,f+1+n); ll x,y,z; fo(i,1,m){ scanf("%lld%lld%lld",&x,&y,&z); add(x,y,z); add(y,x,z); } ll l=1,r=n,ans=1e12; while(l<=r){ ll mid=(l+r)/2; if(check(mid)){ ans=min(ans,f[mid]); r=mid-1; } else l=mid+1; } if(ans==1e12) printf("-1"); else printf("%lld",ans); return 0;}
0 0
- codevs 4175 二分+spfa判断
- CODEVS 4175 收费站 二分+SPFA
- codevs 4175 收费站(二分+SPFA)
- codevs 4175 收费站(二分+spfa)
- codevs 4175 洛谷 P1951 收费站(二分+spfa验证)
- 【CODEVS 1183】泥泞的道路 SPFA+二分
- CodeVS 1183 SPFA+二分答案 解题报告
- codevs 1183 泥泞的道路 二分+SPFA最长路
- codevs 1183 泥泞的道路(spfa+二分答案)
- codevs 1183 泥泞的道路(二分答案+spfa验证)
- codevs 1183 泥泞的道路 (spfa +二分)
- <二分答案+spfa验证>codevs 1183 泥泞的道路
- codevs - 图论 - SPFA
- 【codevs 1557】热浪(SPFA)
- 二分+SPFA
- codevs 1183 泥泞的道路 图论,spfa判环,二分答案
- UVA 11090 Going in Cycle!! SPFA判断负环+二分
- 【codevs】2645 Spore SPFA+判负环
- Codeforces Round #257 (Div. 1) C. Jzzhu and Apples(构造题,想法题,好题)
- 图论之拓扑排序
- HttpURLConnection用法详解
- 特殊排序
- 【LeetCode 4】 Median Of Sorted Array
- codevs 4175 二分+spfa判断
- Android 实现闹钟以及通知
- Pandas 数据处理,数据清洗
- Android 实现拍照功能
- C/C++代码实现最大子数组
- 论文阅读:Automatic Detection and Classication of Teeth in CT Data
- (2)防火墙的基本配置---1安全域和端口
- js 如何实现sum(2,3)===sum(2)(3);
- mysql 添加外键 遇到的问题