【CodeVS 1540】银河英雄传说 2002年NOI全国竞赛
2016-03-10 19:01
375 查看
noi这么水?
很久没有自己不看题解A题了 ~~~~~~
带权并查集!
CodeVS的数据不合规定??有乱七八糟的字符?? 见我注释掉的读入!【刚又测试 洛谷用被注释掉的那一句也可以A 说明CadeVS数据不合规定!
很久没有自己不看题解A题了 ~~~~~~
带权并查集!
CodeVS的数据不合规定??有乱七八糟的字符?? 见我注释掉的读入!【刚又测试 洛谷用被注释掉的那一句也可以A 说明CadeVS数据不合规定!
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib> using namespace std; #define INF 100000000 #define MAXN 1000000 // 永远的10^6 int fa[MAXN],depth[MAXN],m; int F(int x) { int tmp=fa[x]; if(fa[x]!=x) { fa[x]=F(fa[x]); depth[x]+=depth[tmp]; } return fa[x]; } int wa[MAXN]; int W(int x) { if(wa[x]!=x) wa[x]=W(wa[x]); return wa[x]; } int main() { scanf("%d",&m);char c; for(int i=1;i<=30000;i++) fa[i]=i,wa[i]=i; for(int x,y,i=1;i<=m;i++) { // getchar(),c=getchar(); cin>>c; scanf("%d %d",&x,&y); if(c=='M') { if(F(x)!=F(y)) { int s=F(x),t=W(y); fa[s]=t; wa[t]=s; depth[s]=1; } } if(c=='C') { if(F(x)!=F(y)) printf("-1\n"); else F(x),F(y),printf("%d\n",abs(depth[x]-depth[y])-1); } } return 0; }
相关文章推荐
- 【洛谷 1991】 无线通讯网
- 【洛谷 1345】 奶牛的电信
- 【BZOJ 3990】 [SDOI2015]排序
- 【BZOJ 2705】 [SDOI2012]Longge的问题
- 【BZOJ 1934】 [Shoi2007]Vote 善意的投票
- 【BZOJ 1433】 [ZJOI2009]假期的宿舍
- 【COGS 1873】 [国家集训队2011]happiness(吴确)
- 【Poj 3469】 Dual Core CPU
- 【BZOJ 3504 】[Cqoi2014]危桥
- 【CodeVS 1227】 方格取数2
- 【CodeVS 1028】 花店橱窗布置
- 【Poj 1149】PIGS
- Ubuntu12.04LST 下 Django+uwsgi+nginx部署
- 【Poj 2112】 Optimal Milking
- 【Poj 3436】 ACM Computer Factory
- 【Poj 1273】 Drainage Ditches
- 剑指offer 矩形覆盖
- 自我介绍学期期望及问题
- Javascript中的Object对象
- 《JAVA与模式》之工厂方法模式