POJ 1797 Heavy Transportation(kuangbin带你飞 专题四:最短路)
2015-02-01 17:19
309 查看
大概题意:有n个城市,m条边,每个边都有最大承载量,就是边权,现在要从1点运送货物到n,求能运货的最大重量。最大运货量必定是运输路上的最小边。看完之后就感觉和上一题类似,直接用最小生成树去做,不过这次是最大生成树吧...只要把1-n联通了就结束,每次找最大值,答案就是连接的最后一个值。
开始WA了三次,以为是写搓了或者思路错了..后来发现输出的是时候没有加冒号,因为我看到和上一题类似,直接用的上一题的输出...但是上一题没冒号这题有...郁闷
最短路的解法是求最长路,每次更新一下当前最长路的最短边是多少,可以找到n结束,也可以更新完,今天实在是手冻得...不淡定了,所以这个最短路方法以后在更新...
开始WA了三次,以为是写搓了或者思路错了..后来发现输出的是时候没有加冒号,因为我看到和上一题类似,直接用的上一题的输出...但是上一题没冒号这题有...郁闷
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> #include<iostream> using namespace std; #define inf 0x7fffffff struct node { int x,y,s; }e[2000000]; int cmp(node a,node b) { return a.s>b.s; } int f[3000],n,m; void inti() { for(int i=1;i<=n;i++) f[i]=i; } int find(int x) { if(x!=f[x]) return f[x]=find(f[x]); return x; } int main() { int T; cin>>T; for(int cas=1;cas<=T;cas++) { cin>>n>>m; inti(); for(int i=0;i<m;i++) scanf("%d %d %d",&e[i].x,&e[i].y,&e[i].s); sort(e,e+m,cmp); int ans=inf; for(int i=0;i<m;i++) { int x=find(e[i].x); int y=find(e[i].y); if(x!=y) f[x]=y; if(find(1)==find(n)) { ans=e[i].s; break; } } printf("Scenario #%d:\n",cas); printf("%d\n\n",ans); } return 0; }
最短路的解法是求最长路,每次更新一下当前最长路的最短边是多少,可以找到n结束,也可以更新完,今天实在是手冻得...不淡定了,所以这个最短路方法以后在更新...
相关文章推荐
- [kuangbin带你飞]专题四 最短路练习 C POJ 1797
- [kuangbin带你飞]专题四 最短路练习 M POJ 1062
- POJ 2253 Frogger(kuangbin带你飞 专题四:最短路)
- [kuangbin带你飞]专题四 最短路练习 A POJ 2387
- [kuangbin带你飞]专题四 最短路练习 B POJ 2253
- [kuangbin带你飞]专题四 最短路练习 N POJ 1847
- [kuangbin带你飞]专题4 最短路 A - Til the Cows Come Home POJ - 2387
- [kuangbin带你飞]专题四 最短路练习 G POJ 1502
- [kuangbin带你飞]专题四 最短路练习 H POJ 3660
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题四 最短路练习 P
- [kuangbin带你飞]专题四 最短路练习
- POJ 3984 & [kuangbin带你飞]专题一 简单搜索 K
- [kuangbin带你飞]专题四 最短路练习 A-E
- poj 1062(Kuangbin最短路专题M题)
- [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher G POJ 2406
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题四 最短路练习 A
- [kuangbin带你飞]专题九 连通图 E - Redundant Paths POJ - 3177
- [kuangbin带你飞]专题四 最短路练习 G MPI Maelstrom