1110. Complete Binary Tree (25)
来源:互联网 发布:网络是什么时候发明的 编辑:程序博客网 时间:2024/05/18 14:43
n比较小
直接暴力的做
如果层序中某个点没有完完全全的两个儿子,就看看这个点后面的哪些点是不是全都是没儿子的。
有儿子就说明不是cbt。
要注意一个节点如果只有一个儿子的话,只能是左儿子,不能是右儿子。
#include <bits/stdc++.h>using namespace std;struct node{ int left; int right; int parent; node() { left = right = parent = -1; }}; int main(void){ int n; cin >> n; vector<node> arr(n); int i; for (i = 0; i < n; i++) { char a[2], b[2]; cin >> a >> b; if (a[0] != '-') { arr[i].left = atoi(a); arr[atoi(a)].parent = i; } if (b[0] != '-') { arr[i].right = atoi(b); arr[atoi(b)].parent = i; } } int root; i = 0; while (arr[i].parent != -1) i = arr[i].parent; root = i; queue<int> sup; vector<int> res; sup.push(root); while (!sup.empty()) { int temp = sup.front(); sup.pop(); res.push_back(temp); if (arr[temp].left != -1) sup.push(arr[temp].left); if (arr[temp].right != -1) sup.push(arr[temp].right); } bool re = true; int j; for (i = 0; i < n; i++) { if (!(arr[res[i]].left != -1 && arr[res[i]].right != -1)) { if (arr[res[i]].left == -1 && arr[res[i]].right != -1) { re = false; break; } for (j = i + 1; j < n; j++) { if (arr[res[j]].left != -1 || arr[res[j]].right != -1) { re = false; break; } } break; } } if (re) cout << "YES " << res[n-1]; else cout << "NO " << root;}
阅读全文
0 0
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree
- 1110. Complete Binary Tree
- 1110. Complete Binary Tree
- PAT-Advanced 1110. Complete Binary Tree (25)
- 字符在字符串中出现的次数和位置
- 2017.11.3 关于C语言程序设计现代方法第9章第8题
- Spring MVC的异步模式
- 20171103
- 多柱(m柱)汉诺塔问题 解题报告【DP】
- 1110. Complete Binary Tree (25)
- mtd_utils交叉编译
- 阿里云前端周刊
- C++11新特性学习笔记—使用花括号就地初始化
- Web的现状:网页性能提升指南
- MySQL之自定义函数
- Fragment嵌套Fragment和Viewpager
- 把自己卖了!!!
- mysqlbinlog: unknown variable xxx of the my.ini