#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】网络的更多相关文章

  1. [CTSC2017]网络

    [CTSC2017]网络 连一条长度为len的边,使得基环树的直径最小 结论:一定连在某条直径两个点上(否则更靠近不劣) 然后二分答案判定. dp[i]:链上一个点往下延伸的最大深度 考虑对于任意两个 ...

  2. uoj 300 [CTSC2017]吉夫特 - Lucas - 分块 - 动态规划

    题目传送门 戳此处转移 题目大意 给定一个长为$n$的序列,问它有多少个长度大于等于2的子序列$b_{1}, b_{2}, \cdots, b_{k}$满足$\prod_{i = 2}^{k}C_{b ...

  3. BZOJ 4901 [CTSC2017]网络

    题解: 只会O(n log^2 n) O(n log n)先留坑 不开long long 0 分!!!! #include<iostream> #include<cstdio> ...

  4. uoj #297. 【CTSC2017】密钥

    #297. [CTSC2017]密钥 一个密钥是一个长度为 n=2k+1n=2k+1 的字符串,它包含 11 个字母X.kk 个字母 A 和 kk 个字母 B.例如 k=3k=3 时,BAXABAB ...

  5. uoj#300.【CTSC2017】吉夫特

    题面:http://uoj.ac/problem/300 一道大水题,然而我并不知道$lucas$定理的推论.. $\binom{n}{m}$为奇数的充要条件是$n&m=n$.那么我们对于每个 ...

  6. 【loj2262】【CTSC2017】网络

    题目 一颗\(n\)个点的树,求加入一条边点之后两点间最长距离的最小值 : \(n \le 100000\) ; 题解 首先加入边的两个端点一定在直径上面,先\(dfs\)拎出直径来讨论(下标只代表直 ...

  7. UOJ#299. 【CTSC2017】游戏 线段树 概率期望 矩阵

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ299.html 前言 不会概率题的菜鸡博主做了一道概率题. 写完发现运行效率榜上的人都没有用心卡常数——矩阵怎么可以用数组 ...

  8. 虚拟机上装uoj

    前期准备: x64 ubuntu 镜像.vmware.ss账号 注意一定要有64位镜像! ss不是必须的,不过没有的话就等着下载一晚上吧... 首先先装好ubuntu,我装的是ubuntu-16.04 ...

  9. android 网络加载图片,对图片资源进行优化,并且实现内存双缓存 + 磁盘缓存

    经常会用到 网络文件 比如查看大图片数据 资源优化的问题,当然用开源的项目  Android-Universal-Image-Loader  或者 ignition 都是个很好的选择. 在这里把原来 ...

随机推荐

  1. phpStudy启动失败时的解决方法 提示缺vc9运行库

    问题描述: 问题产生原因分析: php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行 ...

  2. 监控Mongo慢查询

    监控Mongo慢查询 1. 使用mongostat监控MongoDB全局情况 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取MongoDB的当前运行状态,并输 ...

  3. struct 方法使用

    struct _Worker { _Worker() { pWokerbase=NULL; hThread=INVALID_HANDLE_VALUE; pListConn=NULL; } struct ...

  4. hive自带的字符串函数

    1. 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length('abcedfg') f ...

  5. Oracle & SQL Server 数据传输

    在开发中用到的Oracle与SQL Server间数据传输的不同方法的整理,比较.包括原理的简介,配置和实现方法,优缺点的比较,使用平台和DB,适合的应用范围和效能的比较. 整理的方法有如下六种: 1 ...

  6. fail-fast 与 fail-save 机制的区别

    link:https://blog.csdn.net/bigtree_3721/article/details/67095084

  7. 190. Reverse Bits 二进制相反数

    [抄题]: Reverse bits of a given 32 bits unsigned integer. Example: Input: 43261596 Output: 964176192 E ...

  8. 性能优化之_android布局优化

    优化布局的的原则就是减少创建的对象的数量,setContentView话费onCreate到onResume中的大概99%的时间1.使用Relativelayout而不是LinearLayout,Li ...

  9. zynq qemu学习

    1,ubuntu给软件包降级,先安装aptitude sudo apt-get  install aptitude 2,强制降级,等号“=”前后不能有空格 sudo aptitude install ...

  10. Django框架 之 form组件的钩子

    Django框架 之 form组件的钩子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 ...