uoj #298. 【CTSC2017】网络
#298. 【CTSC2017】网络
一个一般的网络系统可以被描述成一张无向连通图。图上的每个节点为一个服务器,连接服务器与服务器的数据线则看作图上的一条边,边权为该数据线的长度。两个服务器之间的通讯距离被定义为其对应节点之间最短路的长度。
现在,考虑一个当前图结构为树的网络系统。你作为该网络系统的管理员,被要求在这个系统中新加入一条给定长度的数据线。数据线可以连在任意两个服务器上。
你的任务是,求出在所有合法的方案中,通讯距离最远的两个服务器之间的最小距离。
输入格式
输入包含多组数据。对于每组数据,输入的第一行包含二个正整数 N,LN,L, 其中 NN表示服务器个数,LL 为新加入数据线的长度。
接下来 n−1n−1 行,第 ii 行有三个正整数 ai,bi,liai,bi,li,表示有一条长度为 lili 的数据线连接服务器 ai,biai,bi。服务器的编号为 1∼N1∼N。
输入的末尾以两个 00 作为结束。
输出格式
对于每组数据,输出一行一个整数,描述在所有合法的方案中,通讯距离最远的两个服务器之间的最小距离。
样例一
input
7 1
1 2 1
2 3 1
3 4 1
4 5 1
5 6 1
6 7 1
0 0
output
3
样例二
input
6 26
1 2 66
2 3 11
3 4 73
2 5 77
3 6 33
10 47
1 2 86
2 3 69
3 4 41
4 5 26
5 6 41
2 7 73
3 8 77
4 9 2
5 10 65
0 0
output
143
232
样例三
见样例数据下载。
限制与约定
一共有 20 个测试点。编号为 1∼201∼20。每个测试点为 5 分。
保证在任一测试点中,数据的组数不会超过 1515,且所有数据的 NN 之和不超过数据范围中标明的 NN 的最大值的 55 倍。
保证所有的输入数据均为不超过 231−1231−1 的非负整数,保证 N≥1N≥1。
保证数据合法。
对于给定的测试点,其限制条件如下表所示。
| 测试点 | NN | 测试点 | NN |
|---|---|---|---|
| 1 | ≤10≤10 | 11 | ≤20000≤20000 |
| 2 | ≤50≤50 | 12 | |
| 3 | ≤100≤100 | 13 | |
| 4 | 14 | ||
| 5 | ≤150≤150 | 15 | |
| 6 | ≤600≤600 | 16 | ≤100000≤100000 |
| 7 | 17 | ||
| 8 | 18 | ||
| 9 | ≤2000≤2000 | 19 | |
| 10 | 20 |
时间限制:1s1s
空间限制:512MB
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 210
using namespace std;
int n;
long long map[maxn][maxn],a[maxn][maxn],ans=;
void init(){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
map[i][j]=a[i][j];
}
void floyed(){
for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
if(i==j||j==k||i==k)continue;
map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
}
}
long long count(){
long long res=;
for(int i=;i<=n;i++){
for(int j=i+;j<=n;j++)
res=max(res,map[i][j]);
}
return res;
}
int main(){
int l;
while(){
scanf("%d%d",&n,&l);
ans=;
if(n==&&l==)return ;
int x,y,z;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j)a[i][j]=;
for(int i=;i<n;i++){
scanf("%d%d%d",&x,&y,&z);
a[x][y]=a[y][x]=z;
}
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++){
init();
map[i][j]=min(map[i][j],1LL*l);
map[j][i]=min(map[j][i],1LL*l);
floyed();
ans=min(ans,count());
}
cout<<ans<<endl;
}
return ;
}
10分 暴力
uoj #298. 【CTSC2017】网络的更多相关文章
- [CTSC2017]网络
[CTSC2017]网络 连一条长度为len的边,使得基环树的直径最小 结论:一定连在某条直径两个点上(否则更靠近不劣) 然后二分答案判定. dp[i]:链上一个点往下延伸的最大深度 考虑对于任意两个 ...
- uoj 300 [CTSC2017]吉夫特 - Lucas - 分块 - 动态规划
题目传送门 戳此处转移 题目大意 给定一个长为$n$的序列,问它有多少个长度大于等于2的子序列$b_{1}, b_{2}, \cdots, b_{k}$满足$\prod_{i = 2}^{k}C_{b ...
- BZOJ 4901 [CTSC2017]网络
题解: 只会O(n log^2 n) O(n log n)先留坑 不开long long 0 分!!!! #include<iostream> #include<cstdio> ...
- uoj #297. 【CTSC2017】密钥
#297. [CTSC2017]密钥 一个密钥是一个长度为 n=2k+1n=2k+1 的字符串,它包含 11 个字母X.kk 个字母 A 和 kk 个字母 B.例如 k=3k=3 时,BAXABAB ...
- uoj#300.【CTSC2017】吉夫特
题面:http://uoj.ac/problem/300 一道大水题,然而我并不知道$lucas$定理的推论.. $\binom{n}{m}$为奇数的充要条件是$n&m=n$.那么我们对于每个 ...
- 【loj2262】【CTSC2017】网络
题目 一颗\(n\)个点的树,求加入一条边点之后两点间最长距离的最小值 : \(n \le 100000\) ; 题解 首先加入边的两个端点一定在直径上面,先\(dfs\)拎出直径来讨论(下标只代表直 ...
- UOJ#299. 【CTSC2017】游戏 线段树 概率期望 矩阵
原文链接www.cnblogs.com/zhouzhendong/p/UOJ299.html 前言 不会概率题的菜鸡博主做了一道概率题. 写完发现运行效率榜上的人都没有用心卡常数——矩阵怎么可以用数组 ...
- 虚拟机上装uoj
前期准备: x64 ubuntu 镜像.vmware.ss账号 注意一定要有64位镜像! ss不是必须的,不过没有的话就等着下载一晚上吧... 首先先装好ubuntu,我装的是ubuntu-16.04 ...
- android 网络加载图片,对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存
经常会用到 网络文件 比如查看大图片数据 资源优化的问题,当然用开源的项目 Android-Universal-Image-Loader 或者 ignition 都是个很好的选择. 在这里把原来 ...
随机推荐
- python's twelth day for me
闭包: 内层函数对外层函数的变量(非全局变量)的引用. python 遇到闭包,有一个机制,会开辟一个空间,将闭包中的全部变量放入其中.且不会随着函数的结束而关闭. 闭包的完美体现:装饰器. 打印函数 ...
- JavaScript第二节
1.动态属性 引用类型可以动态的添加属性,而基本类型不行. 2.复制变量值 3.检测类型 执行环境和作用域 没有块级作用域 引用类型 1.Object类型 2.Array类型 数组初始化: 检测数组: ...
- freemodbus modbus TCP 学习笔记
1.前言 使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西.在嵌入式中实现TCP就需要借助一个以太网协议 ...
- Burpsuite模块—-Intruder模块详解
一.简介 Burp Intruder是一个强大的工具,用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击.你可以使用 Burp Intr ...
- c语言语法目录一
1.#include<stdio.h> include 是要告诉编译器,包含一个头文件 在c语言中,任何库函数调用都需要提前包含头文件 <头文件> 代表让c语言编译器去系统目录 ...
- Python三元运算和lambda表达式
一.三元运算 1.定义:三元运算是if-else 语句的快捷操作,也被称为条件运算. 2.结构: [on_true] if [expression] else [on_false] 3.示例: ...
- Objects & Class
[Objects & Class] 1.定义一个类. 上述代码中,numberOfSides是实例变量,simpleDescription也是实例方法. 2.创建实例,使用实例. 3.init ...
- SpringMVC总结二:Controller的请求映射方式(RequestMapping)简单介绍
在SpringMVC总结一:快速入门的基础上简单介绍一下请求映射的方式: 1,标准映射规则 1. @RequestMapping可以设置在类上,也可以设置在方法上 2. 请求的映射规则是:类上的Req ...
- 场景中,并没有灯源的存在,但是cube却会有灯光照射的反应,这就是Light Probe Group的作用。
http://blog.csdn.net/qq617119142/article/details/41674755
- php_imagick超强的PHP图片处理扩展
php_imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能. ImageMagick是一套功能强大.稳定而且 ...