#P1099 树网的核 题解
题解
这一题,刚开始看题目感觉好像很难,题目又长……一看数据范围,呵呵。
已经给出来这是个DAG,所以不用担心连通性的问题。那么怎么做呢?
朴素的做法是把树的直径的两个端点都统计出来,然后暴力算那个什么偏心距,这里可以用floyd预处理,反正才n才300。还有一点,怎么算一个点到一条路径的距离呢,很简单,计算点到路径的距离,由于这是一张树网,且已经预处理点对之间的距离,从而点k到路径(i,j)的距离即为
(dist[k][i]+dist[k][j]-dist[i][j])/ //可以画图理解一下,注意是没有环的。
然后就开始敲了,但后来发现好像不用管直径,只用枚举一条路径就行了(满足最优的路径一定在树的直径上)
时间复杂度嘛……O(n^3)
参考代码
#include<bits/stdc++.h>
using namespace std;
const int inf=1e9;
const int N=;
int n,m,a[N][N],ans=inf,dis,u,v,c;
int main()
{
scanf("%d %d",&n,&m);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(i-j)
a[i][j]=inf;
}
}
for(int i=;i<n;i++)
{
scanf("%d%d%d",&u,&v,&c);
a[u][v]=a[v][u]=c;
}
for(int k=;k<=n;k++)
{
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
a[i][j]=min(a[i][k]+a[k][j],a[i][j]);
}
}
for(int i=;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
if(a[i][j]<=m)
{
dis=;
for(int k=;k<=n;k++)
{
dis=max(dis,(a[k][i]+a[k][j]-a[i][j])/);
}
ans=min(dis,ans);
}
}
}
printf("%d",ans);
return ;
}
#P1099 树网的核 题解的更多相关文章
- 洛谷 P1099 树网的核
P1099 树网的核 题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W ...
- bzoj1999 / P1099 树网的核
P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再 ...
- P1099 树网的核——模拟+树形结构
P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短: 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超 ...
- P2491 消防/P1099 树网的核
P2491 消防/P1099 树网的核 双倍经验,双倍快乐. 题意 在一个树上选择一段总长度不超过\(s\)的链使所有点到该链距离的最大值最小. 输出这个最小的值. 做法 Define:以下\(s\) ...
- [NOIP2007] 提高组 洛谷P1099 树网的核
题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并 ...
- P1099 树网的核
NOIP 2007 提高第四题. 啊......我还是看了题解才做出来的. 这题乍一看毫无头绪,但是我们spy on一下,暗中观察发现:n才300!随便打暴力水过去啊! 然后,这破题怎么暴力?感觉我的 ...
- P1099 树网的核 && P2491 [SDOI2011]消防
给定一棵树, 你可以在树的直径上确定一条长度不超过 \(S\) 的链, 使得树上离此链最长的点距离最小, 输出这个距离 P2491 数据范围为 P1099 的 \(1000\) 倍 Solution ...
- 洛谷P1099 树网的核
传送门 80分 $ Floyd $ 树的直径可以通过枚举求出.直径的两个端点$ maxi,maxj $ ,由此可知对于一个点 $ k $ ,如果满足 $ d[maxi][k]+d[k][maxj]== ...
- 2018.11.06 洛谷P1099 树网的核(最短路+枚举)
传送门 之前看李煜东的书一直感觉是道神题. 然后发现这题数据范围只有300?300?300? 直接上floydfloydfloyd然后暴力就完了啊. 代码: #include<bits/stdc ...
随机推荐
- UIButton按钮的高亮状态颜色
首先是adjustsImageWhenHighlighted属性的正确使用: UIButton的adjustsImageWhenHighlighted属性是当UIButton设置了背景图片时,并且没有 ...
- acm数论之旅--数论四大定理
ACM数论之旅5---数论四大定理(你怕不怕(☆゚∀゚)老实告诉我) (本篇无证明,想要证明的去找度娘)o(*≧▽≦)ツ ----------数论四大定理--------- 数论四大定理: 1.威 ...
- NTP服务安装及时间同步
1.安装ntp服务命令 yum install -y ntp 2.常用NTP服务器地址: ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.al ...
- 科技 - 5G
科技 - 5G 一.5G的概念 第五代移动通信技术(英语:5th generation mobile networks或5th generation wireless systems.5th-Gene ...
- C++中map的介绍用法以及Gym题目:Two Sequences
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字(key),每个关键字只能在map中出现一次,第二个可能称为该关键字的值(value))的数据 处理能力,由于这个特性,它完成有可能 ...
- Qt QML Component 学习笔记
简介 Component是Qt封装好的.只暴露必要接口的QML类型,可以重复利用.一个QML组件就像一个黑盒子,它通过属性.信号.函数和外部世界交互. 一个Component既可以定义在独立的QML文 ...
- 计算机网络 --- IP 地址
概述 这一节主要了解网络中有关ip的知识,包括子网掩码等等,还有 ipv6的生成规则等等. 基本的ip结构 分类寻址 主要分为 ABCDE ,由两部分组成,网络号 + 主机号 . 可以看到 A 和 C ...
- io异常
针对异常,JVM默认的处理方案: 一旦遇到程序出现了问题,就会把问题的类名,错误原因,错误的位置等信息打印在控制台,以便我们观察. 并且,会自动从当前出问题的地方停止掉.这种处理方案虽然可以,但是不够 ...
- vs2019本地调试异步程序
1.vs2019创建一个webapi服务,启动本地webapi服务, 2.使用vs2019再打开一个相同的应用程序,并将异步程序所在的程序集设置为启动项,并启动,启动后点击调试->全部拆离 3. ...
- 杭电 2097 sky数
Sky数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...