关注
#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
相关推荐
12-03 00:01
北京理工大学珠海学院 嵌入式软件工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
170271次浏览 2869人参与
# 找工作,行业重要还是岗位重要? #
85114次浏览 1683人参与
# 职场上哪些行为很加分? #
306368次浏览 3447人参与
# 大家每天通勤多久? #
69344次浏览 440人参与
# 你面试体验感最差/最好的公司 #
15777次浏览 259人参与
# 实习的内耗时刻 #
210736次浏览 1537人参与
# 一人说一个提前实习的好处 #
9533次浏览 192人参与
# 互联网行业现在还值得去吗 #
46812次浏览 351人参与
# 今年你最想重开的一场面试是? #
3455次浏览 64人参与
# 秋招落幕,你是He or Be #
9953次浏览 206人参与
# 重来一次,你会对开始求职的自己说 #
5628次浏览 142人参与
# 实习没事做是福还是祸? #
15783次浏览 239人参与
# 反问环节如何提问 #
126308次浏览 2663人参与
# 礼物开箱Plog #
563次浏览 21人参与
# 团建是“福利”还是是 “渡劫” #
6749次浏览 144人参与
# 我的第一份实习怎么找的 #
208425次浏览 1827人参与
# 工作中听到最受打击的一句话 #
5772次浏览 104人参与
# 比亚迪工作体验 #
74260次浏览 281人参与
# 你小心翼翼的闯过多大的祸? #
10690次浏览 156人参与
# 大厂VS公务员你怎么选 #
74249次浏览 681人参与
