关注
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main() {
int T;
while (cin >> T) {
for (int t = 0; t < T; t++) {
int n;
cin >> n;
vector<pair<int, pair<int, int>>> tree(n);
vector<int> inDegree(n);
for (int i = 0; i < n; i++) {
int val, left, right;
cin >> val >> left >> right;
tree[i].first = val;
tree[i].second.first = left;
tree[i].second.second = right;
if (left != -1)inDegree[left]++;
if (right != -1)inDegree[right]++;
}
int root;
for (int i = 0; i < n; i++) {
if (inDegree[i] == 0) {
root = i;
break;
}
}
queue<int> qu, next;
qu.push(root);
int pre = 0;
int cur = 0;
bool flag = true;
while (!qu.empty()) {
while (!qu.empty()) {
int curNode = qu.front();
qu.pop();
cur += tree[curNode].first;
if (tree[curNode].second.first != -1)next.push(tree[curNode].second.first);
if (tree[curNode].second.second != -1)next.push(tree[curNode].second.second);
}
if (pre >= cur) {
flag = false;
break;
}
pre = cur;
cur = 0;
qu.swap(next);
}
if (flag) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
}
}
} C++凑活看吧
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
09-18 20:41
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客树洞,我想对你说 #
13702次浏览 116人参与
# 大学最后一个寒假,我想…… #
54889次浏览 599人参与
# 快手技术岗信息交流阵地 #
6328次浏览 51人参与
# 如何KTV领导 #
73719次浏览 505人参与
# 牛客周边新品开箱 #
11364次浏览 91人参与
# 机械人集合!你是什么工程师? #
20850次浏览 91人参与
# 硬件人的春招flag #
52627次浏览 435人参与
# 应届生被毁约被毁意向了怎么办 #
47360次浏览 280人参与
# 求职中的尴尬瞬间 #
6018次浏览 49人参与
# 三一集团提前批进度交流 #
39304次浏览 225人参与
# 机械人避雷的岗位/公司 #
29676次浏览 248人参与
# 大疆工作体验 #
19692次浏览 85人参与
# 牛友的志愿填报指南 #
36062次浏览 188人参与
# 国企还是互联网,你怎么选? #
172054次浏览 1305人参与
# 怎么给家人解释你的工作? #
14603次浏览 86人参与
# 得物app工作体验 #
29562次浏览 68人参与
# 你的mentor是什么样的人? #
18470次浏览 117人参与
# 帮我看看,领导说这话什么意思? #
24584次浏览 107人参与
# 今年形式下双非本找得到工作吗 #
239322次浏览 1435人参与
# 产品面经 #
224556次浏览 2066人参与
# 校招泡的最久的公司是哪家? #
15113次浏览 92人参与
查看11道真题和解析