bzoj 2019: [Usaco2009 Nov]找工作 最长路
2017-08-16 15:44
351 查看
→题目链接←
显然就是找一个最长路
两个城市有路径就建一个权值为d的边
如果有航线就建一个权值为d-z的边
边的权值表示经过这个边可以获得多少钱
最后从起点开始跑最长路就好,答案对于每个点取max
有正环就是无解,跟判负环一样
代码:
显然就是找一个最长路
两个城市有路径就建一个权值为d的边
如果有航线就建一个权值为d-z的边
边的权值表示经过这个边可以获得多少钱
最后从起点开始跑最长路就好,答案对于每个点取max
有正环就是无解,跟判负环一样
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<vector> #define inf 999999999 using namespace std; struct node{ int to,len; }; int n,m1,m2,d,s; vector<node>v[1010]; int dis[1010]; int num[1010]; bool vis[1010]; queue<int>q; bool f=true; void link(int x,int y,int z){ node t; t.to=y; t.len=z; v[x].push_back(t); } void spfa(){ for(int i=1; i<=n; i++)dis[i]=0; dis[s]=d; vis[s]=true; num[s]=1; q.push(s); while(!q.empty()){ int t=q.front(); q.pop(); for(int i=0; i<v[t].size(); i++){ int to=v[t][i].to; int len=v[t][i].len; if(dis[to]<dis[t]+len){ dis[to]=dis[t]+len; if(!vis[to]){ if(num[to]==n){ f=false; return; } vis[to]=true; q.push(to); num[to]++; } } } vis[t]=false; } } int main(){ scanf("%d%d%d%d%d",&d,&m1,&n,&m2,&s); for(int i=0; i<m1; i++){ int x,y; scanf("%d%d",&x,&y); link(x,y,d); } for(int i=0; i<m2; i++){ int x,y,z; scanf("%d%d%d",&x,&y,&z); link(x,y,d-z); } spfa(); if(!f)printf("-1\n"); else{ int Max=0; for(int i=1; i<=n; i++)Max=max(Max,dis[i]); printf("%d\n",Max); } return 0; }
相关文章推荐
- 【BZOJ】2019: [Usaco2009 Nov]找工作(spfa)
- 【bzoj2019】[Usaco2009 Nov]找工作 最短路
- bzoj2019 [Usaco2009 Nov]找工作
- 2019: [Usaco2009 Nov]找工作
- 2019: [Usaco2009 Nov]找工作
- BZOJ 1770 [Usaco2009 Nov] lights 燈
- BZOJ1770 : [Usaco2009 Nov]lights 燈
- bzoj 1770: [Usaco2009 Nov]lights 燈【高斯消元+dfs】
- 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
- bzoj1770[Usaco2009 Nov]lights 燈 高斯消元
- 【BZOJ】2017: [Usaco2009 Nov]硬币游戏(dp+神题+博弈论)
- BZOJ_2017_[Usaco2009 Nov]硬币游戏_博弈论+DP
- BZOJ 1770 [Usaco2009 Nov]lights 燈 【高斯消元】
- 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
- bzoj1230[Usaco2008 Nov]&&[TJOI2009]开关灯(线段树)
- bzoj 1770: [Usaco2009 Nov]lights 燈 (高斯消元)
- BZOJ1770: [Usaco2009 Nov]lights 灯
- bzoj2018 [Usaco2009 Nov]农场技艺大赛
- 【dfs】【高斯消元】【异或方程组】bzoj1770 [Usaco2009 Nov]lights 燈 / bzoj2466 [中山市选2009]树
- BZOJ 1770: [Usaco2009 Nov]lights 燈( 高斯消元 )