AOJ ALDS1_7_A 树
来源:互联网 发布:淘宝灵魂画师 编辑:程序博客网 时间:2024/05/22 17:43
给你树的一些信息,要你按要求输出树。
#include <iostream>#include <algorithm>#include <cstdio>#include <list>#include <stack>#include <vector>#include <map>#include <set>#include <cstring>#include <cmath>#include <string>#define N 100005#define INF (1 << 30)typedef long long ll;using namespace std;vector<int> child[N]; //由于子节点个数不确定,vector比较合适int parent[N];int GetDepth(int idx){ int ret = 0; while (parent[idx] != -1) { ++ret; idx = parent[idx]; } return ret;}const char *str[3] = { "root", "internal node", "leaf" };int main(){ freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); int n; scanf("%d", &n); fill(parent, parent + n, -1); int id, k, c; for (int i = 0; i < n; ++i) { scanf("%d %d", &id, &k); for (int j = 0; j < k; ++j) { scanf("%d", &c); parent[c] = id; child[id].push_back(c); } } for (int i = 0; i < n; ++i) { int depth = GetDepth(i); int status; if (depth == 0) status = 0; else if (child[i].size()) { status = 1; sort(child[i].begin(), child[i].end()); } else status = 2; printf("node %d: parent = %d, depth = %d, %s, ", i, parent[i], depth, str[status]); printf("["); for (int j = 0; j < child[i].size(); ++j) { if (j) printf(", "); printf("%d", child[i][j]); } printf("]\n"); } return 0;}
0 0
- AOJ ALDS1_7_A 树
- Aizu ALDS1_7_A Rooted Trees
- AOJ
- Aoj
- AOJ - 2224 Save your cat (最大生成树,Kruskal)
- AOJ 351 rmq或 基础线段树 求解
- AOJ 2224 Save your cats(最小生成树)
- POJ 3511 && AOJ 299 素数筛法 + 线段树
- [字符串Hash 线段树] AOJ 2734 Donut Decoration
- AOJ 842 西瓜的编译原理【字典树】
- AOJ E
- AOJ I
- AOJ J
- AOJ K
- AOJ 579
- AOJ-0121
- AOJ 2164
- 1163 -- AOJ
- Django 基础教程
- Retrofit2.0:上传图片到PHP
- Hibenate HQL运算符和QBC运算符
- Android开发之利用ZXing库实现二维码的生成
- 【算法】程序猿不写代码是不对的44
- AOJ ALDS1_7_A 树
- Qt5_随机产生MAC地址并在QLabel中显示
- 微信小程序版QQ音乐
- javascript 过滤页面彻底过滤输入时的特殊字符
- Android中的Shape使用总结
- String.xml(加粗,下划线,倾斜,换行)
- solr6.5配置solr自带的solr-6.5.0\contrib\analysis-extras\lucene-libs中文分瓷器
- lrzsz工具
- w7安装oracle 10g时发生“程序异常终止,发生内部错误”的提示