hihocoder 1192 简单的树嵌入 (树上DFS 构造 好题)
来源:互联网 发布:淘宝售假 编辑:程序博客网 时间:2024/04/20 11:22
#1192 : 简单的树嵌入
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
描述
给定一棵n个点的无权树。定义两点i, j(0 ≤ i, j ≤ n - 1)间的距离d(i, j)为两点间树上最短路径的长度(边数)。
我们需要将这n个点映射到中的向量v0 = (v0, 0, ..., v0, m - 1), ..., vn - 1 = (vn - 1, 0, ..., vn - 1, m - 1)。定义两向量vi, vj间的L1距离为
我们希望对于所有0 ≤ i, j ≤ n - 1有d(i, j) = d1(vi, vj)。
输入
第一行n。下面n - 1行,其中第i行为两个空格分开的整数xi, yi,表示点xi和yi间有一条边。
n ≤ 100. 0 ≤ xi, yi ≤ n - 1.
输出
第一行m。下面n行,其中第i行为m个空格分开的整数vi - 1, 0, ..., vi - 1, m - 1。
要求m ≤ 100且 - 100 ≤ vi, j ≤ 100。并且,对于所有0 ≤ i, j ≤ n - 1,d(i, j) = d1(vi, vj)。
如果有多解,输出任意一组满足要求的解即可。
3
0 1
1 2
- 样例输出
2
0 0
0 1
1 1
题目链接:http://hihocoder.com/problemset/problem/1192
题目大意:给出一棵树,要求构造一个矩阵,如果第i个点到第j个点的距离为d(i,j),则矩阵的第i行和第j行对应列的差的绝对值的和要等于d(i,j)
题目分析:构造方法太多,我就写一下我的构造方法,感觉是最简单的,直接构造一个n*n的矩阵,对于第i个点,先将其父亲那一行复制过来然后再将(i,i)点标记为1即可,其实就相当于用1的个数给树分层
#include <cstdio>#include <cstring>int const MAX = 105;struct EDGE{ int v, next;}e[MAX];int head[MAX], cnt;int ans[MAX][MAX];void Add(int u, int v){ e[cnt].v = v; e[cnt].next = head[u]; head[u] = cnt ++;}void DFS(int u, int fa){ memcpy(ans[u], ans[fa], sizeof(ans[fa])); ans[u][u] = 1; for(int i = head[u]; i != -1; i = e[i].next) { int v = e[i].v; if(v != fa) DFS(v, u); } return;} int main(){ int n; scanf("%d", &n); memset(ans, 0, sizeof(ans)); memset(head, -1, sizeof(head)); for(int i = 0; i < n - 1; i++) { int u, v; scanf("%d %d", &u, &v); Add(u, v); Add(v, u); } DFS(0, 0); printf("%d\n", n); for(int i = 0; i < n; i++) { for(int j = 0; j < n - 1; j++) printf("%d ", ans[i][j]); printf("%d\n", ans[i][n - 1]); }}
0 0
- hihocoder 1192 简单的树嵌入 (树上DFS 构造 好题)
- hiho1192 简单的树嵌入(构造题)
- uva12186 树上的dfs
- hihocoder 1041 国庆出游 (DFS + bitset 好题)
- hihicoder 1192 : 简单的树嵌入 搜索
- hihocoder #1273 清理海报 建图思想+dfs+状态压缩记录 好题!
- hihocoder#1347 : 小h的树上的朋友(树链剖分)
- BZOJ3124 [sdoi2013]直径(树上的dfs)
- hihoCoder 1513 : 小Hi的烦恼 位运算好题
- hihocoder 1260 String Problem I (Trie树 好题)
- 【图的dfs + bitset+ 套路】hihocoder. 1041
- HihoCoder 1224:Racing(树DFS & 贪心)
- dfs好题一道
- LA3902 Network (树上dfs)
- 树上dfs + 思维
- codeforces 树上dfs
- Codeforces 453C Little Pony and Summer Sun Celebration dfs树上构造
- POJ 1816 Wild Words(trie 树上的DFS)
- jQuery Ajax操作与实例
- 如何判断int类型大小及sizeof的用法
- C++声明
- 欢迎使用CSDN-markdown编辑器
- #pragma mark的使用简介
- hihocoder 1192 简单的树嵌入 (树上DFS 构造 好题)
- java前奏及基础语法
- 20150728多校第三场1004 - Painter
- QQ空间蜘蛛爬虫数据报告
- 友元类和友元函数
- JavaScript 性能分析新工具 OneProfile
- IBM展望5年内电子产物将存在人类5小认知效率
- HDU 1950-最长上升子序的nlogn算法
- string - strlen源码