#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-17 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
09-18 20:41
门头沟学院 Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务