Hud 3790 最短路径问题[基础最短路Dijkstra]
来源:互联网 发布:erp软件怎么用 编辑:程序博客网 时间:2024/04/28 20:49
题目链接:点击打开链接
pay与dis一起进行更新。
代码:
#include<cstdio>#include<cstring>#define INF 0xffffffconst int N=1005;int Map[N][N],pMap[N][N];int dis[N],pay[N];bool vis[N];int n,m;void Init(){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) {Map[i][j]=INF;pMap[i][j]=INF;}}void Dijkstra(int u0){ memset(vis,0,sizeof(vis)); vis[u0]=true; for(int i=1;i<=n;i++) {dis[i]=Map[u0][i];pay[i]=pMap[u0][i];} dis[u0]=0;pay[u0]=0;// for(int k=1;k<=n;k++)// printf("(%d %d)\n",dis[k],pay[k]); for(int i=1;i<=n;i++) { int temp=INF,ptemp=INF,t=u0; for(int j=1;j<=n;j++) if(!vis[j]) { if(temp>dis[j]) {temp=dis[j];ptemp=pay[j];t=j;} else if(temp==dis[j]&&ptemp>pay[j]) {temp=dis[j];ptemp=pay[j];t=j;} } if(t==u0) return; vis[t]=true; for(int j=1;j<=n;j++) if(!vis[j]) { if(dis[j]>dis[t]+Map[t][j]) {dis[j]=dis[t]+Map[t][j];pay[j]=pay[t]+pMap[t][j];} else if(dis[j]==dis[t]+Map[t][j]&&pay[j]>pay[t]+pMap[t][j]) {dis[j]=dis[t]+Map[t][j];pay[j]=pay[t]+pMap[t][j];} } }}int main(){ while(scanf("%d%d",&n,&m)&&(n+m)) { Init(); for(int i=1;i<=m;i++) { int a,b,d,p; scanf("%d%d%d%d",&a,&b,&d,&p); if(d<Map[a][b]) { Map[a][b]=d;Map[b][a]=d; pMap[a][b]=p;pMap[b][a]=p; } else if(d==Map[a][b]&&p<pMap[a][b]) { Map[a][b]=d;Map[b][a]=d; pMap[a][b]=p;pMap[b][a]=p; } } int s,t; scanf("%d%d",&s,&t); Dijkstra(s);// for(int k=1;k<=n;k++)// printf("%d %d\n",dis[k],pay[k]); printf("%d %d\n",dis[t],pay[t]); } return 0;}
- Hud 3790 最短路径问题[基础最短路Dijkstra]
- hud 3790 最短路径问题【Dijkstra简单应用】
- hdu 3790 最短路径问题 最短路Dijkstra
- HDU 3790 最短路径问题【最短路 dijkstra 双权值】
- HDOJ 3790 最短路径问题 (最短路 && Dijkstra && 双权值)
- HUD----3790最短路径问题
- HUD最短路 (Dijkstra)
- HDU 3790 最短路径问题【多关键字最短路,Dijkstra算法+spfa算法】
- HDU 3790 最短路径问题(Dijkstra)
- HDU--3790最短路径问题 【Dijkstra】
- hdu 3790 最短路径问题(Dijkstra)
- HDU 3790:最短路径问题【Dijkstra】
- HDU-3790 最短路径问题(Dijkstra)
- HDU 3790 最短路径问题(dijkstra)
- 最短路径问题(Dijkstra)
- 最短路径问题 dijkstra
- 最短路径问题(dijkstra)
- HUD.2544 最短路 (Dijkstra)
- 关于android HAL接口的一片比较好的文章
- 4g08 Linux笔记
- 【WPF】ListView 大图标 横向排列效果
- CSerialPort串口类最新修正版(解决关闭死锁问题)
- 关于socket阻塞与非阻塞情况下的recv、send、read
- Hud 3790 最短路径问题[基础最短路Dijkstra]
- 线程通信与pthread_cond_wait()的使用
- FireFox的上传请求bug,一次提交,请求两次,其中一次是get.
- 检测单链表中是否有环--快慢指针法
- 无法将数值apsdaemon写入键
- Javascript闭包机制
- Sublime text2安装php beautifier
- 1198. Substring
- 5.1 CMMI5级——5级简述及4、5级区别