codeforces 767C (dfs)
来源:互联网 发布:软件qa工程师 编辑:程序博客网 时间:2024/04/28 21:36
比赛的时候卡题卡的厉害,虽然想到正确的方法了,但是因为有点迷糊,给糊里糊涂的叉了
由于子树的子树里再出现等于sum/3的情况,那么dp[u]=0,就可以很好的避免计算情况了
#include <cstdio>#include <iostream>#include <vector>using namespace std;#define pb push_backtypedef long long ll;const int N=1e6+5;int n,root,sum,v1,v2,dp[N];vector<int> g[N];void dfs(int u){ for(int v:g[u]) dfs(v),dp[u]+=dp[v]; if(dp[u]==sum/3&&u!=root) if(!v1) v1=u,dp[u]=0; else if(!v2){v2=u,dp[u]=0;return;}}int main(){ scanf("%d",&n); for(int i=1,p;i<=n;i++) { scanf("%d%d",&p,&dp[i]); sum+=dp[i]; g[p].pb(i); if(!p)root=i; } if(sum%3)return puts("-1"),0; dfs(root); if(v1&&v2)printf("%d %d",v1,v2); else puts("-1");}
0 0
- codeforces 767C (dfs)
- Codeforces 767C Garland (dfs)
- codeforces 767 c Garland(dfs)
- codeforces 767C Garland 【dfs】
- codeforces 731C(DFS)
- CodeForces 767C Garland【DFS+vector】
- Codeforces 116C - Party(dfs)
- CodeForces 430C Xor-tree(DFS)
- CodeForces 616 C. The Labyrinth(dfs)
- CodeForces 616C The Labyrinth(DFS)
- CodeForces 686C Robbers' watch (dfs)
- CodeForces 731C. Socks(DFS)
- Codeforces 744C【DFS】
- Codeforces 369C DFS
- codeforces 850C dfs
- [DFS] Codeforces 638C
- 【codeforces 731 C Socks】+ DFS
- codeforces /782/problem/C [dfs]
- 为Emacs安装markdown-mode
- quartz开源任务调度框架知识总结(一)
- 快速理解 session/token/cookie 认证方式
- Mysql命令大全
- 171. Excel Sheet Column Number
- codeforces 767C (dfs)
- Java Graphics 图形绘制技术
- SpringSpringMVCMyBatis整合
- 【科学探索】互联网用户偏爱在广告曝光后多少秒内点击广告?
- Struts1与Struts2的比较
- 即时通讯smack4.1.0-添加好友遇到的bug
- 修改及查看mysql数据库的字符集
- 如何获取textarea中的内容?innerhtml、innerText还是value?
- 谷哥的小弟学后台(21)——DBUtils