2016 ACM-ICPC Asia Regional E – Similarity of Subtrees(dfs+hash)
来源:互联网 发布:软件调试的目的 编辑:程序博客网 时间:2024/05/29 02:20
E – Similarity of Subtrees
题意:输入一棵由n个点和n-1条边构成的树,求这个树中两棵相似的子树有多少对? 相似的子树:要求在相同的深度,两颗子树的在这一层的节点数相同。
思路:利用树的多项式做hash运算,然后同hash的统计即可;
代码:
#include <bits/stdc++.h>using namespace std;#define ULL unsigned long long#define LL long longconst ULL b=1e9+7;const LL max_n=1e6+10;map<ULL,LL> mp;vector<int> g[max_n];ULL d[max_n];LL ans;int n;void dfs(int u,int fa){ d[u]=1; for(int i=0;i<g[u].size();++i){ int v=g[u][i]; if(v==fa)continue; dfs(v,u); d[u]+=d[v]*b; } mp[d[u]]++;}int main(){ while(scanf("%d",&n)) { for(int i=0; i<=n; i++) g[i].clear(); mp.clear(); ans=0; for(int i=1;i<n;i++){ int u,v;scanf("%d%d",&u,&v); g[u].push_back(v);g[v].push_back(u); } dfs(1,-1); for(map<ULL,LL>::iterator it=mp.begin(); it!=mp.end(); it++) ans+=it->second*(it->second-1LL)/2LL; cout<<ans<<endl; } return 0; }
阅读全文
0 0
- 2016 ACM-ICPC Asia Regional E – Similarity of Subtrees(dfs+hash)
- 2016 JAG E Similarity of Subtrees(hash)
- E. Similarity of Subtrees【hash】
- JAG Practice2016-E Similarity of Subtrees- hash
- (2016 弱校联盟十一专场10.3) Similarity of Subtrees DFS + hash
- Similarity of Subtrees(深搜+hash、映射)
- Similarity of Subtrees 深搜,hash
- Problem E Similarity of Subtrees
- 2016 ACM/ICPC Asia Regional Dalian Online(2题)
- 2016 ACM/ICPC Asia Regional Qingdao Online(8题)
- 2016 ACM/ICPC Asia Regional Qingdao Online(Cure)
- 2016 ACM/ICPC Asia Regional Qingdao Online(Balanced Game)
- The 2016 ACM-ICPC Asia Dalian Regional Contest(汇总)
- 2016 ACM-ICPC Asia Regional Changchun 1002 Fraction(模拟)
- 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online
- 【2016 ACM/ICPC Asia Regional Qingdao Online】
- 2016 ACM/ICPC Asia Regional Qingdao Online
- 浅析为什么char类型的范围是 —128~+127
- 代码心得1
- bzoj 3393: [Usaco2009 Jan]Laserphones 激光通讯
- Software caused connection abort: socket write error
- java注解
- 2016 ACM-ICPC Asia Regional E – Similarity of Subtrees(dfs+hash)
- 求和(一道在mod上面打表的题)
- 分布式机器学习平台大比拼:Spark、PMLS、TensorFlow、MXNet
- 百度贴吧帖子搜索器-升级版
- 【复习】数据库知识
- 从"0"和"1"开始,揭开数字世界的神秘面纱
- 【前端知识点】跨域之跨域资源共享 CORS 详解与应用
- ssh框架hibernate 查询方式和查询功能优化
- Ubuntu终端命令查看端口占用及关闭