HDU 5606 Tree(连通块)
来源:互联网 发布:华东理工大学网络教育 编辑:程序博客网 时间:2024/06/03 06:05
题意:
给定N≤105的一棵树,边权只有0或1,求每个点最近点(包括自己)个数的异或和
分析:
最近点显然是距离为0,直接无视1建图,搜出连通块异或就可以了
考虑异或的性质,异或奇数大小的就可以了
坑:
代码:
//// Created by TaoSama on 2016-01-02// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STACK:1024000000,1024000000")#include <algorithm>#include <cctype>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iomanip>#include <iostream>#include <map>#include <queue>#include <string>#include <set>#include <vector>using namespace std;#define pr(x) cout << #x << " = " << x << " "#define prln(x) cout << #x << " = " << x << endlconst int N = 1e5 + 10, INF = 0x3f3f3f3f, MOD = 1e9 + 7;int n;vector<int> G[N];bool vis[N];vector<int> p;int dfs(int u) { vis[u] = true; int ret = 1; for(int i = 0; i < G[u].size(); ++i) { int v = G[u][i]; if(vis[v]) continue; ret += dfs(v); } return ret;}int main() {#ifdef LOCAL freopen("C:\\Users\\TaoSama\\Desktop\\in.txt", "r", stdin);// freopen("C:\\Users\\TaoSama\\Desktop\\out.txt","w",stdout);#endif ios_base::sync_with_stdio(0); int t; scanf("%d", &t); while(t--) { scanf("%d", &n); for(int i = 1; i <= n; ++i) G[i].clear(); for(int i = 1; i < n; ++i) { int u, v, c; scanf("%d%d%d", &u, &v, &c); if(c) continue; G[u].push_back(v); G[v].push_back(u); } int ans = 0; memset(vis, false, sizeof vis); for(int i = 1; i <= n; ++i) { if(vis[i]) continue; int cnt = dfs(i); if(cnt & 1) ans ^= cnt; } printf("%d\n", ans); } return 0;}
0 0
- HDU 5606 Tree(连通块)
- hdu 1241 Oil Deposits (连通块的个数)
- HDU 1241 Oil Deposits(连通块的数量)
- HDU 1232 畅通工程 (并查集找连通块)
- HDU 1241 dfs求连通块个数
- hdu 1241 dfs求连通块
- 连通块
- HDU 4101 Ali and Baba 博弈, 连通块
- HDU 3839Ancient Messages(BFS + 连通块,判图形)
- HDU 4587TWO NODES(割点,连通块,枚举)
- HDU 4587TWO NODES(割点,连通块,枚举)
- HDU 1269 迷宫城堡 简单求连通块
- HDU 1241 Oil Deposits DFS求连通块
- UVa572油田(连通块个数)
- dfs求连通块(围棋 poj)
- HDU1241(DFS求连通块)
- UVA572dfs连通块
- hdu1241(dfs连通块)
- 功能测试机设计--硬件--电流采样
- android 属性动画监听
- neutron VLAN provider network 简要分析和实验
- python之Merge Intervals
- hdoj function 5608 (数学)
- HDU 5606 Tree(连通块)
- <C>Josephus问题——用循环链表解决
- golang database 全局
- <LeetCode OJ> 189. Rotate Array
- 安卓StateMachine学习笔记--待续
- 4.虚拟机ubuntu网络问题汇总
- PHP搭建自己的web框架-程序初始化
- iOS音频开发
- malloc free new delete 赋值构造函数相关使用及区别