1110. Complete Binary Tree (25)
2017-11-03 14:41
429 查看
n比较小
直接暴力的做
如果层序中某个点没有完完全全的两个儿子,就看看这个点后面的哪些点是不是全都是没儿子的。
有儿子就说明不是cbt。
要注意一个节点如果只有一个儿子的话,只能是左儿子,不能是右儿子。
直接暴力的做
如果层序中某个点没有完完全全的两个儿子,就看看这个点后面的哪些点是不是全都是没儿子的。
有儿子就说明不是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; }
相关文章推荐
- PAT 甲级 1110. Complete Binary Tree (25)
- PAT (Advanced Level) Practise 1110 Complete Binary Tree (25)
- PAT - 甲级 - 1110. Complete Binary Tree (25) (判断完全二叉树+建树)
- PAT-Advanced 1110. Complete Binary Tree (25)
- pat-a1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)解题报告
- PAT (Advanced Level) 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)-PAT甲级真题
- PAT (Advanced Level) Practise 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)
- PAT 1110. Complete Binary Tree (25) 完全二叉树判断
- 【PAT】【Advanced Level】1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)
- 1110. Complete Binary Tree (25)