题目:树网的核

网址:https://www.luogu.com.cn/problem/P1099

题目描述

设 T=(V,E,W)T=(V,E,W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称 TT 为树网(treenetwork),其中 VV,EE 分别表示结点与边的集合,WW 表示各边长度的集合,并设 TT 有 nn 个结点。

路径:树网中任何两结点 aa,bb 都存在唯一的一条简单路径,用 d(a, b)d(a,b) 表示以 a, ba,b 为端点的路径的长度,它是该路径上各边长度之和。我们称 d(a, b)d(a,b) 为 a, ba,b 两结点间的距离。

D(v, P)=\min{d(v, u)}D(v,P)=min{d(v,u)}, uu 为路径 PP 上的结点。

树网的直径:树网中最长的路径成为树网的直径。对于给定的树网 TT,直径不一定是唯一的,但可以证明:各直径的中点(不一定恰好是某个结点,可能在某条边的内部)是唯一的,我们称该点为树网的中心。

偏心距 \mathrm{ECC}(F)ECC(F):树网 TT 中距路径 FF 最远的结点到路径 FF 的距离,即

\mathrm{ECC}(F)=\max{d(v, F),v \in V}ECC(F)=max{d(v,F),v∈V}

任务:对于给定的树网 \(T=(V, E, W)\) 和非负整数 \(s\),求一个路径 \(F\),他是某直径上的一段路径(该路径两端均为树网中的结点),其长度不超过 \(s\)(可以等于 \(s\)),使偏心距 \(ECC(F)\) 最小。我们称这个路径为树网 \(T=(V, E, W)\) 的核(Core)。必要时,\(F\) 可以退化为某个结点。一般来说,在上述定义下,核不一定只有一个,但最小偏心距是唯一的。

下面的图给出了树网的一个实例。图中,\(A-B\) 与 \(A-C\) 是两条直径,长度均为 \(20\)。点 \(W\) 是树网的中心,\(EF\) 边的长度为 \(5\)。如果指定 \(s=11\),则树网的核为路径\(DEFG\)(也可以取为路径\(DEF\)),偏心距为 \(8\)。如果指定\(s=0\)(或 \(s=1\)、\(s=2\)),则树网的核为结点 \(F\),偏心距为 \(12\)。

输入格式

共 \(n\) 行。

第 \(1\) 行,两个正整数 \(n\) 和 \(s\),中间用一个空格隔开。其中 \(n\) 为树网结点的个数,\(s\) 为树网的核的长度的上界。设结点编号以此为 \(1,2\dots,n\)。

从第 \(2\) 行到第 \(n\) 行,每行给出 \(3\) 个用空格隔开的正整数 \(u, v, w\),依次表示每一条边的两个端点编号和长度。例如,\(2 4 7\) 表示连接结点 \(2\) 与 \(4\) 的边的长度为 \(7\)。

输出格式

一个非负整数,为指定意义下的最小偏心距。

输入输出样例

输入 #1

5 2
1 2 5
2 3 2
2 4 4
2 5 3

输出 #1

5

输入 #2

8 6
1 3 2
2 3 2
3 4 6
4 5 3
4 6 4
4 7 2
7 8 3

输出 #2

5

说明/提示

  • 对于 \(40\%\) 的数据,保证 \(n \le 15\)。
  • 对于 \(70\%\) 的数据,保证 \(n \le 80\)。
  • 对于 \(100\%\) 的数据,保证 \(n \le 300\),\(0\le s\le10^3\),\(1 \leq u, v \leq n\),\(1 \leq w \leq 10^3\)。

C ++ AC代码

总结回顾

参考文献

NOIP2007 树网的核 [提高组]的更多相关文章

  1. [SDOI2011]消防/[NOIP2007] 树网的核

    消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个国家最兴旺的 ...

  2. Cogs 97. [NOIP2007] 树网的核 Floyd

    题目: http://cojs.tk/cogs/problem/problem.php?pid=97 97. [NOIP2007] 树网的核 ★☆   输入文件:core.in   输出文件:core ...

  3. NOIP2007 树网的核 && [BZOJ2282][Sdoi2011]消防

    NOIP2007 树网的核 树的直径的最长性是一个很有用的概念,可能对一些题都帮助. 树的直径给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和.树中最远的两个节点之间 ...

  4. noip2007 树网的核

    P1099 树网的核 112通过 221提交 题目提供者该用户不存在 标签动态规划树形结构2007NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 设T=(V, E, W) ...

  5. 洛谷1099 [NOIP2007] 树网的核

    链接https://www.luogu.org/problemnew/show/P1099 题目描述 设T=(V,E,W)是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称TTT为 ...

  6. noip2007树网的核

    想一下可以发现随便枚举一条直径做就可以了. 核越长越好.于是枚举核的过程可以做到O(n) 然后就是统计答案. 对于每个核最大偏心距肯定是核上面每个点不走核内的点所能走到的最远点的最值. 而且对于核的两 ...

  7. BZOJ2282 SDOI2011消防/NOIP2007树网的核(二分答案+树形dp)

    要求最大值最小容易想到二分答案.首先对每个点求出子树中与其最远的距离是多少,二分答案后就可以标记上一些必须在所选择路径中的点,并且这些点是不应存在祖先关系的.那么如果剩下的点数量>=3,显然该答 ...

  8. [NOIP2007] 提高组 洛谷P1099 树网的核

    题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并 ...

  9. 树网的核 2007年NOIP全国联赛提高组(floyed)

    树网的核 2007年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond     题目描述 Description [问题描述]设 T= ...

随机推荐

  1. 面试题五十七:和为s的数字

    题目一:和为s的数字,在一个递增数组中寻找两个数字的和等于s 方法:双指针法,一个在头一个在尾:如果两个指针指向的和小于,那么be++:大于end--: 题目二:打印所有和为s的连续正数序列 方法:双 ...

  2. python基础--python基本知识、七大数据类型等

    在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1)python应用领域 目前Python主要应用领域: 云计算: 云计算最火的语言, ...

  3. Apache Tomcat/8.5.51 secretRequired="true"

    1.报错IllegalArgumentException: The AJP Connector is configured with secretRequired="true" b ...

  4. Python List sort()方法

    描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数.高佣联盟 www.cgewang.com 语法 sort()方法语法: list.sort(cmp=None, ...

  5. 牛客挑战赛40 VMware和基站 set 二分 启发式合并 区间覆盖

    LINK:VMware和基站 一道 做法并不常见的题目 看起来很难写 其实set维护线段就可以解决了. 容易想到 第二个操作借用启发式合并可以得到一个很不错的复杂度 不过利用线段树维护这个东西 在区间 ...

  6. luogu P4294 [WC2008]游览计划

    LINK:游览计划 斯坦纳树例题. 斯坦纳树是这样一类问题:带权无向图上有K个关键点 求出包含这K个点的最小生成树. 也就是说 求最小生成树 但是 并不是整张图 仅限于K个点. 可以发现我们利用克鲁斯 ...

  7. 《分享》Graphql入门与实践

    最近项目用到了graphql,学习了一些并在公司做了一个小分享,希望对你有帮助 一.介绍 Graphql是一种面向数据的API查询语言 Graphql给前端提供一种强力的查询工具,我们可以根据自己定义 ...

  8. 题解 [NOI2015]程序自动分析

    据说考前写题解可以$\text{RP}$++? 这题还是算一道并查集水题了吧qwq我又做了好久 ---------------------------------------------------- ...

  9. Python3,逻辑运算符

    优先级 ()>not>and>or 1.or 在python中,逻辑运算符or,x or y, 如果x为True则返回x,如果x为False返回y值.因为如果x为True那么or运算 ...

  10. 使用Luhn算法实现信用卡号验证

    问题描述: 2:信用卡号的验证 [信用卡号的验证] 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么 担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过 Luhn 算法 ...