关注
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
void bfs(vector<vector<int> >& data, vector<int>& sumfloor,
vector<bool>& rootflag, int rootnum) {
queue<int> myq;
myq.push(rootnum);
while (!myq.empty()){
int sum = 0;
int size = myq.size(); //每层数目
while (size > 0) {
int nowindex = myq.front();
myq.pop();
//cout << rootflag[nowindex];
if (rootflag[nowindex] == false) {
sum += data[nowindex][0];
}
if (data[nowindex][1] != -1) {
myq.push(data[nowindex][1]);
}
if (data[nowindex][2] != -1) {
myq.push(data[nowindex][2]);
}
rootflag[nowindex] = true;
size--;
}
sumfloor.push_back(sum);
}
}
bool IsASD(vector<vector<int> >& data, vector<bool>& rootflag) {
//找根节点
int rootnum = 0;
for (int i = 0; i < rootflag.size();++i) {
if (rootflag[i] == true) {
rootnum = i;
rootflag[i] = false;
break;
}
}
/*
for (auto num : rootflag) {
cout << num << " ";
}*/
vector<int> sumfloor;
bfs(data, sumfloor, rootflag, rootnum);
int i = 0;
while (i < sumfloor.size()-1) {
if (sumfloor[i] > sumfloor[i + 1]) {
return false;
}
++i;
}
return true;
}
int main() {
int T;
cin >> T;
for (int i = 0; i < T; ++i) {
int N; //节点数
cin >> N;
vector<vector<int> > data(N, vector<int>(3,0));
vector<bool> rootflag(N, true);
for (int j = 0; j < N; ++j) {
cin >> data[j][0] >> data[j][1] >> data[j][2];
if(data[j][1]!=-1) rootflag[data[j][1]] = false;
if (data[j][2] != -1) rootflag[data[j][2]] = false;
}
/*
for (auto num : rootflag) {
cout << num << " ";
}*/
if (IsASD(data, rootflag)) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
}
system("pause");
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客树洞,我想对你说 #
13693次浏览 116人参与
# 大学最后一个寒假,我想…… #
54874次浏览 599人参与
# 快手技术岗信息交流阵地 #
6323次浏览 51人参与
# 如何KTV领导 #
73710次浏览 505人参与
# 牛客周边新品开箱 #
11355次浏览 91人参与
# 机械人集合!你是什么工程师? #
20841次浏览 91人参与
# 硬件人的春招flag #
52621次浏览 435人参与
# 应届生被毁约被毁意向了怎么办 #
47350次浏览 280人参与
# 求职中的尴尬瞬间 #
6012次浏览 49人参与
# 三一集团提前批进度交流 #
39297次浏览 225人参与
# 机械人避雷的岗位/公司 #
29669次浏览 248人参与
# 大疆工作体验 #
19686次浏览 85人参与
# 牛友的志愿填报指南 #
36053次浏览 188人参与
# 国企还是互联网,你怎么选? #
172044次浏览 1305人参与
# 怎么给家人解释你的工作? #
14593次浏览 86人参与
# 得物app工作体验 #
29556次浏览 68人参与
# 你的mentor是什么样的人? #
18462次浏览 117人参与
# 帮我看看,领导说这话什么意思? #
24577次浏览 107人参与
# 今年形式下双非本找得到工作吗 #
239316次浏览 1435人参与
# 产品面经 #
224547次浏览 2066人参与
# 校招泡的最久的公司是哪家? #
15113次浏览 92人参与