Funny Car Racing UVA
来源:互联网 发布:网络教育统考 编辑:程序博客网 时间:2024/06/04 18:39
传送门 :https://cn.vjudge.net/problem/UVA-12661
思路:
这道题与普通的SPFA最短路不同在于每一条路都有一个开门时间一个关门时间,
这样话,我们只需要判断一下在到某一条路的时候,如果门是关着的,那就等他下一次开门的时候在走,
如果是开着的,如果加上通过的时间依旧没有关,俺就直接过去就好了,如果加上通过的时间,门已经关了,那就等他下一次打开的时候
走这条路,把等待的时间加上去就好了
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <algorithm>#define inf 0x3f3f3f3fusing namespace std;int n,m,s,t;int tt;struct node{ int id; int x; int y; int z;} a;vector<struct node> V[150000];long long int dis[150000];int vis[150000];//void spfa(){ memset(vis,0,sizeof(vis)); memset(dis,inf,sizeof(dis)); dis[s]=0; vis[s]=1; queue<int>q; q.push(s); while(!q.empty()) { int len=q.front(); q.pop(); vis[len]=0; for(int i=0; i<V[len].size(); i++) { int x=V[len][i].x; int y=V[len][i].y; int z=V[len][i].z; int id=V[len][i].id; int sum=dis[len] % (x+y);// int w=0; if(sum<=x-z) w=z; else { w=z+(x+y-sum); } if(dis[len]+w<dis[id] ) { dis[id]=dis[len]+w; if(!vis[id]) { vis[id]=1; q.push(id); } } } } cout<<"Case "<<tt++<<": "<<dis[t]<<endl;}int main (){ int v,u,x,y,z; tt=1; while(cin>>n>>m>>s>>t) { for(int i=0; i<=n+1; i++) V[i].clear(); for(int i=0; i<m; i++) { cin>>u>>v>>x>>y>>z; if(x>=z) { a.id=v; a.x=x; a.y=y; a.z=z; V[u].push_back(a); } } spfa(); } return 0;}
阅读全文
0 0
- Funny Car Racing UVA
- Funny Car Racing UVA
- Funny Car Racing UVA
- uva 12661 - Funny Car Racing
- Uva-12661-Funny Car Racing
- UVA 12661 Funny Car Racing
- UVa 12661 Funny Car Racing
- uva 12661 Funny Car Racing
- UVA 12661 Funny Car Racing
- UVA 12661Funny Car Racing
- UVA 12661 Funny Car Racing
- UVA 12661 Funny Car Racing(最短路)
- uva 12661 funny car racing dijkstra变形
- Funny Car Racing
- Funny Car Racing CSU
- UVa #12661 Funny Car Racing (例题11-11)
- UVA 12661 Funny Car Racing(最短路)
- UVA 12661 Funny Car Racing(最短路)
- F
- Eclipse 配置
- 内存错误
- lua中语句习惯写法
- 函数设计
- Funny Car Racing UVA
- Java-对list里面的元素进行冒泡排序
- HDU 3988 Harry Potter and the Hide Story
- 腾讯云小直播demo配置流程
- Http Post请求
- ios-事件浅析
- table类型(字典)两种方法调用里面的对象
- [干货]Android最全面试总结——这些Android面试题你一定需要
- LeetCode-- Search Insert Position