Wannafly挑战赛1 A.Treepath(dfs)
来源:互联网 发布:网站数据统计工具 编辑:程序博客网 时间:2024/04/28 15:36
题目:https://www.nowcoder.com/acm/contest/15/A
题目描述
给定一棵n个点的树,问其中有多少条长度为偶数的路径。路径的长度为经过的边的条数。x到y与y到x被视为同一条路径。路径的起点与终点不能相同。
输入描述:
第一行一个数n表示点的个数;
接下来n-1行,每行两个整数x,y表示边;
保证输入数据形成一棵树;
1<=n<=100000
输出描述:
一行一个整数表示答案。
示例1
输入
3
1 2
1 3
输出
1
思路:dfs记录奇偶个数,O(n)
代码:
#include<bits/stdc++.h>using namespace std;const int N = 100005;int num[2],vis[N];vector<int> G[N];void dfs(int u,int cnt){ num[cnt]++; vis[u] = 1; for(auto v : G[u]) { if(vis[v]) continue; dfs(v,1-cnt); }}int main(){ int n,u,v; scanf("%d",&n); for(int i = 0;i < n-1;i++) { scanf("%d%d",&u,&v); G[u].push_back(v); G[v].push_back(u); } dfs(1,0); long long sum = num[0]*(num[0]-1ll)/2 + num[1]*(num[1]-1ll)/2; printf("%lld\n",sum); return 0;}
阅读全文
0 0
- Wannafly挑战赛1 A.Treepath(dfs)
- Wannafly挑战赛1:A-Treepath(DFS或BFS)
- Wannafly挑战赛1 A.Treepath
- Wannafly挑战赛1 A Treepath
- Wannafly挑战赛1 A Treepath LCA
- Wannafly挑战赛1 Treepath
- Wannafly挑战赛1 Treepath(树形DP,思维)
- 【Wannafly挑战赛1】A Treepath 【树形DP】or 【黑白染色 找规律】
- Wannafly挑战赛1A-(树形DP)
- wannafly 1 treepath
- Wannafly挑战赛1 A-DP
- Wannafly #1 Treepath(树形DP)
- Wannafly挑战赛6 A(二分)B(dfs)C(公式推导)E(技巧)
- Wannafly挑战赛3 A
- Wannafly挑战赛1B-(二分)
- Wannafly挑战赛1-C.MMset2(LCA)
- NowCoder Wannafly 挑战赛1
- Wannafly挑战赛1_MMSet2
- 坚持#第211天~对云计算及未来方向的更深层次理解
- typedef与#define的区别
- 我的学习记录3
- vue js的MVVM模式
- php正则表达式preg_quote,
- Wannafly挑战赛1 A.Treepath(dfs)
- 深度学习进阶(七)--复习(二)
- Android自定义控件
- API自动化测试利器——Postman
- 2017年10月13日 第四次总结
- VLAN配置
- Kinect点云配准
- 阿里云centos下配置java环境
- C#将窗口变成模式对话框