并查集的几道题(hdu1198)(1232)(1272)(1598)
2012-08-03 20:26
288 查看
1232模板题
View Code
View Code
#include <iostream> #include <stdio.h> #include<string.h> #include<algorithm> #define N 1000001 using namespace std; struct node { int u,v,w; }q[1001]; int father[201]; int find(int x) { if(x!=father[x]) father[x] = find(father[x]); return father[x]; } void union1(int x,int y) { father[x] = y; } bool cmpp(struct node a,struct node b) { return a.w<b.w; } int main() { int i,j,k,m,n,u,v,w,o; while(scanf("%d%d",&n,&m)!=EOF) { for(i = 0; i < m ; i++) scanf("%d%d%d",&q[i].u,&q[i].v,&q[i].w); sort(q,q+m,cmpp); scanf("%d", &o); while(o--) { scanf("%d%d",&u,&v); k = N; for(i = 0 ; i < m ; i++) { for(j = 1; j <= n ; j++) father[j] = j; for(j = i; j < m ; j++) { if(find(q[j].u)!=find(q[j].v)) union1(find(q[j].u),find(q[j].v)); if(find(u)==find(v)) { w = q[j].w-q[i].w; if(w<k) k = w; break; } } if(j==m) break; } if(k!=N) printf("%d\n",k); else printf("-1\n"); } } return 0; }
相关文章推荐
- 并查集 Hdu 1272 (判环)+ Hdu 1213 + Hdu 1232 + Hdu 3172
- hdoj 1232+hdoj 1272 (并查集)
- HDU—1232 并查集
- HDU--1232 并查集
- HDU 1232畅通工程(并查集经典应用)
- HDU 1232 并查集
- HDU 1232 畅通工程(并查集)
- HDOJ1272(并查集,判断是否为树)
- HDU 1272 小希的迷宫 并查集 (判断任意2个点是否有且仅有一条路径可以相通)
- 二分+并查集 hdu 1598 find the most comfortable road
- HDU - 1232 并查集
- [ACM] hdu 1272 小希的迷宫(并查集)
- HPU:1232畅通工程(并查集)
- HDU 1232 畅通工程 (dfs、并查集)
- 【hdu 1272 基础并查集】小希的迷宫
- HDU 1232 畅通工程 并查集
- hdu 1598 暴力+并查集
- hdu 1232 经典并查集应用
- HDU 1272 小希的迷宫(乱搞||并查集)
- hdu1272 小希的迷宫--并查集