Luogu 1099 树网的核】的更多相关文章

bzoj1999 数据加强版(n <= 5e5) 较早的noip题,值得研究 重要结论:直径的最长性,任何从直径中离开直径的点到它离开的点的距离,都不会比直径的另一端到它离开的点长(否则就有新的直径出现了嘛) 在求不经过直径的最长距离的时候犯错了,要考虑的是最远的点到现在点的距离,而不是只考虑儿子,码力还是太差……包括代码的简洁性,多开了冗余的数组,都应当思考仔细 Code: #include <cstdio> using namespace std; ; , head[N], fa[N…
Code: #include<bits/stdc++.h> #define ll long long #define maxn 300001 #define inf 1000000000 #define setIO(s) freopen(s".in","r",stdin) using namespace std; deque<int>Q; int n,S,edges,k; int hd[maxn],to[maxn<<1],nex[…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1999  https://www.luogu.org/problemnew/show/P1099 “分析性质,O(n)扫描” 看了半天才懂...发现自己对树的直径的相关知识太不熟了... 这篇博客的讲解很详细:https://www.cnblogs.com/shenben/p/5895325.html 说一下自己的理解: 1.每个直径对答案的贡献是相同的: 因为所有直径都相交,所以不妨考虑公…
题面 解题思路 搞了三个多小时.... noip时的数据很水,直接暴力n^3过. 我们考虑优化,首先可以贪心,我们要在直径上选肯定越插长越好,所以n^2其实就可以解决.但这还不够,根据直径的最长性,我们可以用一个单调队列优化. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace st…
链接https://www.luogu.org/problemnew/show/P1099 题目描述 设T=(V,E,W)是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称TTT为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,ba两结点间的距离. D(v,P)=min…
一道树的直径 树网的核 BZOJ原题链接 树网的核 洛谷原题链接 消防 BZOJ原题链接 消防 洛谷原题链接 一份代码四倍经验,爽 显然要先随便找一条直径,然后直接枚举核的两个端点,对每一次枚举的核遍历核上的每个点,用\(dfs\)求出核外节点到核的最大值即可,时间复杂度为\(O(n^3)\),这在\(NOIP\)的原数据范围下是可以过的,但对于数据加强版就必须要优化了. 发现当枚举到直径上的某个点时,核的另一端在不超过\(s\)的前提下显然越远越好.这样就直接优化掉一个\(n\)了,但我们还可…
洛谷传送门,BZOJ传送门 树网的核 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P的距离为该点与P上的最近的结点的距离:…
题目:树网的核 网址: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 为端点的路径的长度…
描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a, b)为a, b两结点间的距离. D(v, P)=min{d(v, u), u为路径P上的结点}. 树网的直径:树网中最长的路径成为树网的直径…
[BZOJ1999][codevs1167][Noip2007]Core树网的核 试题描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P的距离为该…
围观了final,SJTU还是飞了,泽民同志劲啊! 膜拜归膜拜...回来开题 bzoj1999树网的核 最近就喜欢给自己找切不动的题...QAQ ok.....昨天在家里做了一个下午+晚上 又困&又累,虽然的确是调出了一些bug但是最sb的一句话今天才刚刚调出来...晕啊 finding my 状态ing... 联赛数据n=300,现在想想真是厚道,vijos也很厚道,一个完全通不过的程序居然还A了... Demi Guo说过思考三部曲,想法是什么,想法怎么来的,我为什么想不到. (证明一)核一…
P1099 树网的核 112通过 221提交 题目提供者该用户不存在 标签动态规划树形结构2007NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上…
题目: http://cojs.tk/cogs/problem/problem.php?pid=97 97. [NOIP2007] 树网的核 ★☆   输入文件:core.in   输出文件:core.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]    设T=(V,E,W)是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中v,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点.路径:树网中…
从下午坑到网上..noip的数据太弱,若干的地方写挂结果还随便过= = 最坑的就是网上有些题解没考虑周全... 第一步是找直径,用两次bfs(或者dfs,Linux下系统栈挺大的..)解决.找出其中一条直径就可以了,虽然蒟蒻不会证明但是看起来似乎挺有道理的 要看证明的话可以看这个题解:http://trinklee.blog.163.com/blog/static/238158060201411175015709/ 直径上的路径本来有n^2条,但是我们发现,首先对于同一起点/终点的路径,路径长度…
P1099 树网的核 题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a, b)为a, b两结点间的距离. D(v, P)=min{d(v, u), u为路径P上的结点}. 树网的直径:树网…
题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a, b)为a, b两结点间的距离. D(v, P)=min{d(v, u), u为路径P上的结点}. 树网的直径:树网中最长的路径成为树网的…
P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再dfs,再全图找一遍. 分类讨论: 1.偏心距可能是所取路径上(非端点)的某一点与直径外一点的距离 解决方案:在该点上跑一遍dfs,不能通过树的直径,找到距离最远的点. 2.偏心距可能是所取路径的端点与直径端点之间未取部分的长度. 所取路径的端点在直径上,根据性质,与它相对距离最远的点十分显然是直径…
题目描述 给出一棵树,定义一个点到一条路径的距离为这个点到这条路径上所有点的距离的最小值.求一条长度不超过s的路径,使得所有点到这条路径的距离的最大值最小. 输入 包含n行: 第1行,两个正整数n和s,中间用一个空格隔开.其中n为树网结点的个数,s为树网的核的长度的上界.设结点编号依次为1, 2, ..., n. 从第2行到第n行,每行给出3个用空格隔开的正整数,依次表示每一条边的两个端点编号和长度.例如,“2 4 7”表示连接结点2与4的边的长度为7. 所给的数据都是正确的,不必检验. 输出…
消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个国家最兴旺的行业是消防业.由于政府对国民的热情忍无可忍(大量的消防经费开销)可是却又无可奈何(总统竞选的国民支持率),所以只能想尽方法提高消防能力. 现在这个国家的经费足以在一条边长度和不超过s的路径(两端都是城市)上建立消防枢纽,为了尽量提高枢纽的利用率,要求其他所有城市到这条路径的距离的最大值最小. 你受命监管这…
1999: [Noip2007]Core树网的核 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1214  Solved: 336[Submit][Status][Discuss] Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯…
好久没写题解了.这题不算太水就写一下题解. 话说回来,虽然不水但是挺裸.可以说题意即一半题解了. 我猜粘了题面也没有人去看的,所以直接人话题意了. 给一棵树,点数1e6,(当年noip的n当然是只有300了,,),就管他叫树网. 首先定义树的直径:树上最远点对之间的路径.我们定义树的一个点到一段路径的距离是:点和路径上最近的点之间路径长. 然后定义一段路径的偏心距ecc:除了这这路径上的点,其他点到这条路径的距离中的max.(和所有点没区别) 现在要求出这样一个路径,它在一条直径上(直径可能不止…
BZOJ_1999_[Noip2007]Core树网的核_单调队列+树形DP Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P…
这个是NOIP的提高组的题 4804: 树网的核  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 5            Accepted:4 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网…
题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a, b)为a, b两结点间的距离. D(v, P)=min{d(v, u), u为路径P上的结点}. 树网的直径:树网中最长的路径成为树网的…
树网的核 2007年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond     题目描述 Description [问题描述]设 T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T 为树网(treenetwork),其中V, E分别表示结点与边的集合,W 表示各边长度的集合,并设T 有n个结点.路径:树网中任何两结点a,b 都存在唯一的一条简单路径,用d(a,b)表示以a,b 为端点的…
题目描述 Description [问题描述]设 T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T 为树网(treenetwork),其中V, E分别表示结点与边的集合,W 表示各边长度的集合,并设T 有n个结点.路径:树网中任何两结点a,b 都存在唯一的一条简单路径,用d(a,b)表示以a,b 为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b 两结点间的距离.一点v到一条路径P的距离为该点与P 上的最近的结点的距离:d(v…
题目描述 Description [问题描述]设 T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T 为树网(treenetwork),其中V, E分别表示结点与边的集合,W 表示各边长度的集合,并设T 有n个结点.路径:树网中任何两结点a,b 都存在唯一的一条简单路径,用d(a,b)表示以a,b 为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b 两结点间的距离.一点v到一条路径P的距离为该点与P 上的最近的结点的距离:d(v…
传送门 如果只是想验证算法正确性这里是洛谷数据未加强版 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P的距离为该点与P上的最…
P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短: 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超过s的链,ans的下界是直径两端点到这条链距离的最小值: 然后将直径上的点都标记,再次求一下别的点到直径的距离. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; in…
题目大意:题目过长,无法简单描述... 题解: 由于树网的核一定是树直径的一段,因此考虑先将直径取出,通过两次 BFS 即可.要求的东西是树上任意一点到这条取出的线段的距离的最大值,发现这个最大值有可能为三个值构成,首先是给定段到树直径的两个端点的距离,其次是树直径外的点到给的给定段的距离的最大值.到直径端点的值和直径外的点到给定段的值都可以 \(O(n)\) 预处理出来,最后采用双指针扫一遍取出的直径序列即可求出答案,总时间复杂度为 \(O(n)\). 代码如下 #include <bits/…