原题链接:

https://vjudge.net/problem/CodeForces-767C

AC代码:

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int INF = 0x3fffffff;void __init__()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);
}int n;
int sum;
int tem[1000050];
int pre[1000050];
int val[1000050];stack<int> ans;
vector<int> son[1000050];void dfs(int pos)
{val[pos] = tem[pos];int num_son = son[pos].size();if (num_son > 0){for (int i = 0; i < num_son; i++){dfs(son[pos][i]);val[pos] += val[son[pos][i]];}}if (val[pos] * 3 == sum && pos != son[0][0] && ans.size() < 2){ans.push(pos);val[pos] = 0;}
}int main()
{__init__();cin >> n;sum = 0;for (int i = 1; i <= n; i++){cin >> pre[i] >> tem[i];sum += tem[i];son[pre[i]].push_back(i);}dfs(son[0][0]);if (ans.size() == 2 && sum % 3 == 0){cout << ans.top();ans.pop();cout << " " << ans.top() << endl;ans.pop();}elsecout << "-1" << endl;return 0;
}

日常补题,参考了马队的代码,真的强,清晰明了,非常适合我这种菜鸡参考Orz
这题答案不固定,用不同的容器存ans输出不同

CodeForces-767C Garland相关推荐

  1. codeforces 767C - Garland

    题目链接:http://codeforces.com/contest/767/problem/C 问能否将一棵带点权的书分成点权$3$块,求任意方案. 其实考虑一棵以$x$为根的子树权值为${\fra ...

  2. Codeforces 1287C Garland

    题目链接: Codeforces 1287C Garland 思路: 我们记dp[i][j][0]和dp[i][j][1]分别为第i个为奇数/偶数且前i个里面有j个偶数的情况下,第i个的最小复杂度: ...

  3. CodeForces - 1287C Garland(贪心)

    题目链接:点击查看 题目大意:原本有一个1~n的排列,现在缺少了一些数字,用0来代替,现在要求将缺少的数字重新填回去,要求代价和最少,规定代价为:若相邻两个数字的奇偶性不同,则代价为1,否则代价为0 ...

  4. codeforces#239_div2_B Garland 简单模拟

    题目地址:戳这里 题目大意:剪成花环,可以cut 但是不能粘贴--那么最多的方案就是,对每一种具体的颜色,第一字符串中出现的次数和第二个字符串中出现的次数取较小值. 先以为not obliged to ...

  5. 树形dp+树形结构总结

    总结 最近写了好多树形dp+树形结构的题目,这些题目变化多样能与多种算法结合,但还是有好多规律可以找的. 先说总的规律吧! 一般来说树形dp在设状态转移方程时都可以用f[i][]表示i这颗子树怎么怎么 ...

  6. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  7. K-periodic Garland CodeForces - 1353E(贪心)

    You are given a garland consisting of n lamps. States of the lamps are represented by the string s o ...

  8. K-periodic Garland CodeForces - 1353E(暴力+贪心+dp)

    题意: 给定长为 n 的 0, 1 字符串,你可以通过一次操作改变一个字符(0 变 1 or 1 变 0),问最少几次操作可以使任意相邻两个 1 之间的距离为 k ? 题目: You are give ...

  9. CodeForces - 1353E K-periodic Garland(思维+dp)

    题目链接:点击查看 题目大意:给出 n 个灯泡以及其初始状态(开或关),每次操作可以将任意一个灯泡的状态置反,问最少需要操作多少次,可以使得所有开着的灯泡之间相距 k 个单位 题目分析:因为需要满足所 ...

  10. codeforces problem 140E New Year Garland

    排列组合题 题意 用m种颜色的彩球装点n层的圣诞树.圣诞树的第i层恰由l[i]个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同.求有多少种装点方案,答案对p取模. 只 ...

最新文章

  1. 系统集成3月9日作业
  2. JQuery整体简化学习
  3. Linux命令在线查询
  4. 高考成绩接近满分,却被清华北大拒绝,被称“中国最帅科学家”
  5. 自拟计算机作文100字,我的电脑作文100字五篇
  6. 我目前的主要研究方向
  7. 【图像处理基础知识】中文车牌识别API-HyperLPR的应用与相关学习资料(python版)
  8. 怎么爬before after之间的内容_关于伪元素::before和::after的用法
  9. 直线方程求x坐标c语言,已知两点坐标,求直线方程、距离其中一点距离为L的某点...
  10. 饿了么高级设计师:界面视觉设计 5 要素
  11. 2021.1.6寒假打卡Day3
  12. 苹果安卓APP下载地址合并为一个二维码
  13. 圈叉棋、套娃圈叉棋、嵌套圈叉棋、九个井字棋
  14. 迅雷和FlashGet 地址转换工具_6617.com
  15. Mapbox浅析(快速入门Mapbox)
  16. 解决github.com 的响应时间过长
  17. 5月10日云栖精选夜读:阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享...
  18. [转]深入理解RunLoop
  19. IBM实习工作(一)
  20. linux su命令免密,使用PAM模块实现普通用户之间su免密切换

热门文章

  1. el-cascader级联选择器当子节点的children为空数组的话,有bug(前端解决办法)
  2. linux 双显示器 异常,终于搞定双显示器了
  3. CNCF的中国云原生调查报告
  4. Echarts柱状图,实现不同系列,柱体之间的部分重叠效果
  5. python爬虫--爬取某网站电影下载地址
  6. 使用XINCheck文档查重软件对本地文档查重
  7. epsfallback_EPS网络CS Fallback技术研究
  8. 沃趣陈栋ORACLE认证,QData-Oracle-数据库一体机---沃趣科技.pdf
  9. 2020伊始,电动车又给自己刷了一遍谎言buff
  10. 各种浏览器兼容性报告大全