SRM 559 Div1 500 HatRack
来源:互联网 发布:瓷秀软件多少钱 编辑:程序博客网 时间:2024/05/22 06:34
/* 计算出每个节点对应子树的方法相乘即可 */ #include<bits/stdc++.h>using namespace std;typedef long long ll;#define M 55int n,ch[M][M];vector<int>G[M];ll dfs(int x,int f=0,int p=1){ ch[x][0]=0; for(int i=0;i<G[x].size();i++)if(G[x][i]!=f) ch[x][++ch[x][0]]=G[x][i]; if(ch[x][0]==0&&p*2>n)return 1; if(ch[x][0]==1&&p*2==n)return dfs(ch[x][1],x,p<<1); if(ch[x][0]==2){ int l1=dfs(ch[x][1],x,p<<1); int r2=dfs(ch[x][2],x,p<<1|1); int l2=dfs(ch[x][2],x,p<<1); int r1=dfs(ch[x][1],x,p<<1|1); return 1ll*l1*r2+l2*r1; }return 0;}int main(){ scanf("%d",&n); for(int i=1,x,y;i<n;i++){ scanf("%d%d",&x,&y); G[x].push_back(y);G[y].push_back(x); }ll ans=0; for(int i=1;i<=n;i++)ans+=dfs(i); cout<<ans<<'\n';}
1 0
- SRM 559 Div1 500 HatRack
- TC SRM 559 DIV1
- SRM 500 DIV1 B
- SRM 556 Div1 500
- SRM 613 div1 500pt
- SRM 598 DIV1 500 pt
- SRM 542 DIV1 500 StrangeDictionary2
- SRM 562 Div1 500 CheckerFreeness
- srm 556 div1 500 LeftRightDigitsGame2(DP)
- Topcoder SRM 503 DIV1 500 KingdomXCitiesandVillages
- SRM 465(DIV1 DIV2)
- SRM 465(DIV1 DIV2)
- SRM 144 DIV1 second
- SRM 507 DIV1 B
- SRM 513 DIV1 C
- 1-SRM 144 DIV1
- SRM 195 Div1 总结
- SRM 497 DIV1 550
- OpenCV中寻找轮廓函数cvFindContours的使用说明以及序列cvSeq的用法说明
- 等比数列二分求和
- RAD Studio10.2发布会(Delphi XE10.2)
- Java web (学习笔记2)项目各级目录
- 【DRP】JavaScript小例子值简易计算器
- SRM 559 Div1 500 HatRack
- 静态方法和非静态方法
- 双栈实现计算器
- 原生Javascript面向对象
- 关于C++中的pow小记
- MySQL必知必会之3
- codeblocks(无编译器)+MinGW+openssl库(下)
- opencv---文件操作总结
- ES6新特性之Symbol使用细节