POJ 1797
2013-04-22 18:40
387 查看
这个题就是求两点之间最长路径,将dijkstra算法中松弛那部分的“<”改为“>”即可。
#include<iostream>#include<string>using namespace std;int n,m;int map[1000][1000];int vis[1000],d[1000];int min(int a,int b){ if(a>b) return b; return a;}void dijkstra(){ int i,j; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) d[i]=map[i][1]; vis[1]=1; int max,now; for(i=1;i<n;i++){ max=0; for(j=1;j<=n;j++){ if(!vis[j]&&d[j]>max){ max=d[j]; now=j; } } vis[now]=1; for(j=1;j<=n;j++) if(!vis[j]&&min(d[now],map[now][j])>d[j]) d[j]=min(d[now],map[now][j]);
}
}int main(){ int t,i,j,x,y,z,q; cin>>t; for(q=1;q<=t;q++){ cin>>n>>m; if(n==1){ printf("0\n"); continue; }
memset(map,0,sizeof(map)); for(i=1;i<=m;i++){ cin>>x>>y>>z; map[x][y]=map[y][x]=z; } dijkstra(); printf("Scenario #%d:\n%d\n\n", q,d
); } return 0;}
#include<iostream>#include<string>using namespace std;int n,m;int map[1000][1000];int vis[1000],d[1000];int min(int a,int b){ if(a>b) return b; return a;}void dijkstra(){ int i,j; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) d[i]=map[i][1]; vis[1]=1; int max,now; for(i=1;i<n;i++){ max=0; for(j=1;j<=n;j++){ if(!vis[j]&&d[j]>max){ max=d[j]; now=j; } } vis[now]=1; for(j=1;j<=n;j++) if(!vis[j]&&min(d[now],map[now][j])>d[j]) d[j]=min(d[now],map[now][j]);
}
}int main(){ int t,i,j,x,y,z,q; cin>>t; for(q=1;q<=t;q++){ cin>>n>>m; if(n==1){ printf("0\n"); continue; }
memset(map,0,sizeof(map)); for(i=1;i<=m;i++){ cin>>x>>y>>z; map[x][y]=map[y][x]=z; } dijkstra(); printf("Scenario #%d:\n%d\n\n", q,d
); } return 0;}
相关文章推荐
- POJ 1797 Heavy Transportation (Prime 最大生成树)
- POJ 1797
- poj 1797 并查集 / floyd(超时)
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj1797——Heavy Transportation(最大生成树)
- poj 1797(dijkstra变形)
- poj1797
- POJ 1797 - Heavy Transportation
- POJ 1797 - Heavy Transportation(dijkstra变形)
- ACM征途——第一次上传poj 1797作为纪念
- Heavy Transportation POJ - 1797 --- 最短路思维的最大承载量(最大生成树)
- POJ 1797 Heavy Transportation(二分+并查集/kruskal)
- poj 1797 Heavy Transportation 用的dp的思想
- POJ 1797 Heavy Transportation(最大生成树/最短路变形)
- Heavy Transportation POJ - 1797
- POJ 1797 Heavy Transportation
- POJ 1797(dijkstra)