hdu3631(floyd)
来源:互联网 发布:ida pro 6.9 linux 编辑:程序博客网 时间:2024/06/04 19:04
题意:给出M条有向线段,开始的时候所有点不可用,依次给出一些可用点,中间会有提问是否可从A到B点,给出最短路的值。
思路:一开始我的思路是用dijkstra,最坏情况是10w的数据,所以我用邻接表+优先队列优化了,但是还是超时了,果断把这个否决掉了。
之后我觉得floyd很好使,(个人感觉floyd有点离线的味道),因为不管查询多少次,Floyd相当于只执行了一次,最后都存在了map里了嘛,而且点最多才300个,所以空间也肯定没有问题。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <utility>#define N 305#define M 100005#define inf 0x7ffffffusing namespace std;typedef pair<int,int> pii;int n,m,q,map[N][N];bool vis[N];void init(){ for(int i=0;i<n;i++) { map[i][i]=0; vis[i]=false; for(int j=i+1;j<n;j++) { map[i][j]=map[j][i]=inf; } }}void floyd(int k){ for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j]; } }}int main(){ int t=1,u,v,w; while(scanf("%d %d %d",&n,&m,&q)!=EOF) { if(n==0 && m==0 && q==0) break; init(); for(int i=0;i<m;i++) { scanf("%d %d %d",&u,&v,&w); if(map[u][v]>w) map[u][v]=w; } if(t!=1) printf("\n"); printf("Case %d:\n",t++); for(int i=0;i<q;i++) { scanf("%d",&u); if(!u) { scanf("%d",&v); if(!vis[v]) { vis[v]=true; floyd(v); } else printf("ERROR! At point %d\n",v); } else { scanf("%d %d",&v,&w); if(!vis[v] || !vis[w]) printf("ERROR! At path %d to %d\n",v,w); else if(map[v][w]==inf) printf("No such path\n"); else printf("%d\n",map[v][w]); } } } return 0;}
0 0
- hdu3631(floyd)
- hdu3631(floyd入门)
- hdu3631 floyd
- hdu3631 Shortest Path (floyd 变形)
- HDU3631:Shortest Path(Floyd)
- HDU3631 Shortest Path 【Floyd】
- HDU3631:Shortest Path(Floyd)
- HDU3631(Shortest Path)
- hdu3631
- HDU3631
- HDU3631 Shortest Path
- hdu3631 Shortest Path
- HDU3631-Shortest Path
- Floyd-Warshall算法(Floyd-Warshall algorithm)
- 弗洛伊德(Floyd)算法
- poj 1125(floyd)
- HDU1217(floyd算法)
- 【hdu 】 Arbitrage (Floyd)
- 抽象类和接口
- NYOJ 125 盗梦空间
- TYVJ 1013 找啊找啊找GF题解
- 上班语录 2014-02-12
- 锐派出品:LOL新年特辑S4各类细节之下路篇
- hdu3631(floyd)
- 各种字符串Hash函数比较
- 1061. Dating (20)
- perl文件操作
- IOS求职之OC面试题
- C++内存的奥秘
- C盘空间不足的有效清理方法
- LF和CRLF使用sed工具转换
- 我们要建设怎样的社会?—漫说东莞扫黄 - 徐永林的个人空间 - 龙城文章 - Powered by X-Space