POJ 1797 Heavy Transportation(Dijkstra)
来源:互联网 发布:爱国者淘宝店下架 编辑:程序博客网 时间:2024/05/18 05:21
题目链接:POJ 1797
分析:和POJ 2253类似,求所有通路中最大的最短边长度。
用cin读入会超时,用Floyd算法也会超时。
在Dijkstra中的松弛方程为:
dis[j]=max(dis[j],min(dis[u],map[u][j]));
CODE:
//***************AC******************#include <iostream>#include <cmath>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int maxnum=1005;int t,n,m;int dis[maxnum],vis[maxnum],map[maxnum][maxnum];int Dijkstra(int n,int dis[maxnum],int map[maxnum][maxnum]){memset(vis,0,sizeof(vis));for(int i=2;i<=n;i++)dis[i]=map[1][i];dis[1]=0,vis[1]=1;for(int i=1;i<n;i++){int u=1;int tmp=-1;for(int j=2;j<=n;j++){if((!vis[j])&&dis[j]>tmp){u=j;tmp=dis[j];}}vis[u]=1;for(int j=2;j<=n;j++){if((!vis[j])&&map[u][j]>-1)dis[j]=max(dis[j],min(dis[u],map[u][j]));}}return dis[n];}int main(){#ifdef LOCALfreopen("in.txt","r",stdin);#endif cin>>t;int cases=0,ans;while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){dis[i]=-1;for(int j=1;j<=n;j++)map[i][j]=-1;}int p,q,len;for(int i=1;i<=m;i++){scanf("%d%d%d",&p,&q,&len);if(len>map[p][q])map[p][q]=map[q][p]=len;}ans=Dijkstra(n,dis,map);printf("Scenario #%d:\n%d\n\n",++cases,ans);}return 0;}
//*************TLE********************#include <iostream>#include <cmath>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int maxnum=1005;int t,dis[maxnum][maxnum],n,m;int Floyd(int n,int dis[maxnum][maxnum]){for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)dis[i][j]=max(dis[i][j],min(dis[i][k],dis[k][j]));}}return dis[1][n];}int main(){#ifdef LOCALfreopen("in.txt","r",stdin);#endif scanf("%d",&t);int cases=0,ans;while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)dis[i][j]=-1;}int p,q,len;for(int i=1;i<=m;i++){scanf("%d%d%d",&p,&q,&len);if(len>dis[p][q])dis[p][q]=dis[q][p]=len;}ans=Floyd(n,dis);printf("Scenario #%d:\n%d\n\n",++cases,ans);}return 0;}
0 0
- POJ 1797 Heavy Transportation(dijkstra)
- POJ 1797 Heavy Transportation(Dijkstra)
- POJ 1797 Heavy Transportation(dijkstra变形)
- POJ 1797 Heavy Transportation(Dijkstra算法)
- POJ 1797 Heavy Transportation 【dijkstra】
- poj 1797 Heavy Transportation(dijkstra)
- POJ - 1797----Heavy Transportation(Dijkstra)
- POJ 1797Heavy Transportation(dijkstra算法+优先队列优化)
- POJ 1797-Heavy Transportation(Dijkstra + 二分答案)
- Dijkstra||Prim-POJ-1797-Heavy Transportation
- poj-1797-Heavy Transportation dijkstra 水模板
- Poj 1797 Heavy Transportation【Dijkstra变形】
- POJ 1797 - Heavy Transportation(dijkstra变形)
- POJ 1797 Heavy Transportation dijkstra 变形
- poj 1797 Heavy Transportation 【dijkstra的变形】
- POJ.1797 Heavy Transportation (Dijkstra变形)
- poj 1797 Heavy Transportation 最短路 dijkstra
- poj-1797-Heavy Transportation [最短路][Dijkstra]
- 初学C做下记录
- Memcached集群/分布式的单点故障
- Codeforces Round #340 (Div. 2)——C
- Swift - 使用网格(UICollectionView)进行流布局
- 人脑理解递归与递推
- POJ 1797 Heavy Transportation(Dijkstra)
- android之碎片(fragment)二(动态添加)
- Android Activity的singleTask加载模式和onActivityResult方法之间的冲突
- QtCharts笔记之QValueAxis
- HDU 5614 Baby Ming and Matrix tree(树链剖分+线段树)
- Android 支付宝支付
- Uable to run mksdcard sdk tool in Ubuntu 15.10
- java基础2
- 两种分解整数为字符串的方法 阿姆斯特朗数