BestCoder Round #68 (div.2) 1002 tree
题意:给你一个图,每条边权值0或1,问每个点周围最近的点有多少个?
思路:并查集找权值为0的点构成的连通块。
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<math.h> 5 #include<algorithm> 6 #define clc(a,b) memset(a,b,sizeof(a)) 7 using namespace std; 8 int pre[100010],a[100010];//标记根节点 9 int find(int x)//查找根节点 10 { 11 int r=x; 12 while(pre[r]!=r)//返回根节点r 13 r=pre[r]; 14 int i=x,j; 15 while(i!=r)//路径压缩 16 { 17 j=pre[i];//在改变上级之前用临时变量j记录下他的值 18 pre[i]=r;//把上级改为根节点 19 i=j; 20 } 21 return r; 22 } 23 void join(int x,int y)//判断x,y是否连通.如果已经连通,就不用管了;如果不连通,就把它们所在的连通分支合并起 24 { 25 int fx=find(x),fy=find(y); 26 if(fx!=fy) pre[fy]=fx; 27 } 28 int main() 29 { 30 //freopen("in.txt","r",stdin); 31 int t,n,x,y,z; 32 while(~scanf("%d",&t)) 33 { 34 for(int i=0; i<t; i++) 35 { 36 clc(a,0); 37 scanf("%d",&n); 38 for(int i=1; i<=n; i++) 39 { 40 pre[i]=i; 41 } 42 for(int i=1; i<n; i++) 43 { 44 scanf("%d%d%d",&x,&y,&z); 45 if(!z) join(x,y); 46 } 47 for(int i=1; i<=n; i++) 48 { 49 a[find(i)]++; 50 } 51 long long ans=0; 52 for(int i=1; i<=n; i++) 53 { 54 int p=a[find(i)]; 55 if(p) ans^=p; 56 else ans^=1; 57 } 58 printf("%I64d\n",ans); 59 } 60 } 61 return 0; 62 }
View Code
转载于:https://www.cnblogs.com/ITUPC/p/5095308.html
BestCoder Round #68 (div.2) 1002 tree相关推荐
- ACM学习历程—HDU5586 Sum(动态规划)(BestCoder Round #64 (div.2) 1002)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5586 题目大意就是把一段序列里面的数替换成f(x),然后让总和最大. 首先可以计算出初始的总和,以及每 ...
- BestCoder Round #66 (div.2) 1002
GTW likes gt Accepts: 132 Submissions: 772 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- BestCoder Round #78 (div.2)_B_ CA Loves GCD
CA Loves GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) T ...
- HDU 5597 GTW likes function(规律+欧拉函数模板题)——BestCoder Round #66(div.1 div.2)
GTW likes function Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...
- Codeforces Round #316 (Div. 2) D. Tree Requests dfs序
题目链接: 题目 D. Tree Requests time limit per test:2 seconds memory limit per test:256 megabytes 问题描述 Rom ...
- BestCoder Round #81 (div.2) B Matrix
B题...水题,记录当前行是由原矩阵哪行变来的. 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> ...
- Codeforces Round #646 (Div. 2)E. Tree Shuffling 题解(dfs)
题目链接 题目大意 给你一颗树,每一个节点有一个a[i],b[i],c[i]值,你要把b[i]变成c[i],b[i]和c[i]为[0,1],你操作的方法是,选择一个节点x,选择他的k个子树,然后进行交 ...
- (BestCoder Round #59 (div.1) B)简单DP
(改编版,题意相同) Description 火神为了检验zone的力量,他决定单挑n个人. 由于火神训练时间有限,最多只有t分钟,所以他可以选择一部分人来单挑,由于有丽子的帮助,他得到了每个人特定的 ...
- BestCoder Round #78 (div.2)
因为rating不够QAQ就报了Div2.. [CA Loves Stick] CA喜欢玩木棍. 有一天他获得了四根木棍,他想知道用这些木棍能不能拼成一个四边形. Sample Input 2 1 1 ...
最新文章
- pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)
- 导致网速变慢的安全隐患
- CVPR 2021接收结果出炉!录用1663篇,接受率显著提升,你的论文中了吗?(附论文下载)...
- oracle rac应急_ORACLE紧急情况检查应急预案
- 数据库 DB database SQL DBMS
- 遍历文件夹还原数据库SQL语句
- android ViewPager 图片浏览和保存图片
- javascript 运算符优先级
- 笨办法学 Python · 续 练习 32:扫描器
- 我跟 17 位顶级游戏策划人学到的 3 个产品方法论
- CCF201409-2 画图(100分)
- python regularexpress1
- python3.6实现的A星算法
- 影视剪辑,Pr视频剪辑软件自学,界面介绍与自定义
- 如何比较两个EXCEL 文件的不同(各个EXCEL版本的方法)
- 微信公众号文章的爬取(搜狗微信搜索)
- Kalman Fuzzy Actor-Critic Learning Automaton Algorithm for the Pursuit-Evasion Differential Game
- 计算机一级c云大,云南大学网红C位易主!新晋流量霸主竟然是……
- python大数据入门书籍推荐书目_python 大数据入门书籍
- Linux:chmod -R 777 *含义