构造。

从最后一层开始往上构造。最后一层肯定都是叶子结点,距离为2的肯定是同一个父亲,确定好了父亲之后,可以确定上一层每个节点之间的距离,以及上一层每个节点到还未确定的叶子节点之间的距离。

#include<bits/stdc++.h>
using namespace std;int n,m,k;
vector<int>v[110];
int A[110],L[110],h[110];
int D[110][110];
int f[110];int main()
{scanf("%d%d%d",&n,&m,&k);for(int i=1;i<=m;i++) scanf("%d",&A[i]);for(int i=1;i<=m;i++){while(A[i]--){int x; scanf("%d",&x);v[i].push_back(x);}}for(int i=1;i<=k;i++) scanf("%d",&L[i]),h[L[i]]=1;for(int i=1;i<=k;i++) for(int j=1;j<=k;j++) scanf("%d",&D[L[i]][L[j]]);for(int i=m;i>=2;i--){int last = 0;int now = 0;while(1){if(now==v[i].size()) break;while(1){if(h[v[i-1][last]]==1) last++;else break;}f[v[i][now]] = v[i-1][last]; now++;while(1){if(now==v[i].size()) break;if(D[v[i][now]][v[i][now-1]]!=2) {last++; break;}f[v[i][now]] = v[i-1][last]; now++;}}for(int j=0;j<v[i].size();j++)for(int t=0;t<v[i].size();t++)D[f[v[i][j]]][f[v[i][t]]]=D[v[i][j]][v[i][t]]-2;for(int j=0;j<v[i].size();j++)for(int t=1;t<=k;t++)D[f[v[i][j]]][L[t]]=D[L[t]][f[v[i][j]]]=D[v[i][j]][L[t]]-1;}for(int i=1;i<=n;i++){printf("%d",f[i]);if(i<n) printf(" ");else printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/zufezzt/p/6676959.html

hihocoder 1490 Tree Restoration相关推荐

  1. Tree Restoration Gym - 101755F (并查集)

    There is a tree of n vertices. For each vertex a list of all its successors is known (not only direc ...

  2. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  3. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  4. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  5. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  6. DFS序+线段树 hihoCoder 1381 Little Y's Tree(树的连通块的直径和)

    题目链接 #1381 : Little Y's Tree 时间限制:24000ms 单点时限:4000ms 内存限制:512MB 描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每 ...

  7. hihoCoder #1047 Random Tree

    题意 给出点数为 $n$($n \le 1000$)的完全图 $K_n$,带边权.随机出 $K_n$ 的一棵生成树 $T$.求 $T$ 上任意两点间距离的期望. 解法 固定两点 $u$.$v$($u ...

  8. hiho一下 第四周 Hihocoder #1036 : Trie图

    #1036 : Trie图 时间限制:20000ms 单点时限:1000ms 内存限制:512MB 描述 前情回顾 上回说到,小Hi和小Ho接受到了河蟹先生伟大而光荣的任务:河蟹先生将要给与他们一篇从 ...

  9. hihoCoder 1080 : 更为复杂的买卖房屋姿势 线段树区间更新

    #1080 : 更为复杂的买卖房屋姿势 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho都是游戏迷,"模拟都市"是他们非常喜欢的一个游戏 ...

最新文章

  1. rms 公式 有效值_怎样求信号中的RMS值?
  2. linux对称哈希 路由,基于 IP 哈希的路由
  3. Lighttpd日志打印格式
  4. 简历上的“熟练掌握 RPC”,到底是个什么水平?
  5. [蓝桥杯2019初赛]旋转-找规律
  6. Unity3D-C#脚本介绍
  7. centos7无法使用epel的解决方法
  8. mysql交给spring管理_Mysql事务结合spring管理
  9. MySQL(二):MySQL性能优化
  10. 【网络流24题】【LOJ6013】负载平衡(环形纸牌均分,最小费最大流)
  11. Windows批处理BAT脚本
  12. 面向对象分析与设计阅读笔记一
  13. 软件需求与分析——大二下需会知识点
  14. Oracle 查看表空间的使用情况SQL语句
  15. 豆瓣电影推荐系统(Ⅰ)ItemCF算法原理
  16. python黑客帝国代码雨源代码_黑客帝国数字雨 源代码分享
  17. 红外万能遥控器2.0,把家里的红外遥控器改成能用语音和手机app控制
  18. SQL Server添加Northwind数据库
  19. 例题 8-10 抄书(Copying Books,UVa 714)
  20. 安全运维 | 八大运维监控平台及选型推荐

热门文章

  1. 树状数组 poj 2352
  2. 网络安全界永恒不变的10大安全法则
  3. ASP.NET 例程完全代码版(3)——随意创建图形信息
  4. 数据结构与算法-学习笔记(13)
  5. 徒手撸框架--实现 RPC 远程调用
  6. BootStrap selectpicker
  7. JS的prototype和__proto__
  8. CentOS系列启动流程详解
  9. android学习第5天(周六日没学,可惜啊,神驰物外了)
  10. 用偷梁换柱法清除腾讯QQ迷你首页的方法