JZOJ 5196. 【NOIP2017提高组模拟7.3】B
5196. 【NOIP2017提高组模拟7.3】B
Description
Input
Output
Sample Input
5 10 40
2 4 80
2 3 57
1 2 16
2 5 49
Sample Output
16
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 300007
#define LL long long
using namespace std;
LL n, S, E, ls[N], tot, Ma[N], Size[N], sum, root, Len ;
LL d[N], ans;
bool v[N];
struct edge
{
LL to, next, w;
}e[N * ];
struct arr
{
LL dis;
int fa;
}a[N]; inline void Add(int x, int y, int w)
{
e[++tot].to = y;
e[tot].w = w;
e[tot].next = ls[x];
ls[x] = tot;
} inline void Getroot(int x, int fa)
{
Ma[x] = , Size[x] = ;
for (int i = ls[x]; i; i = e[i].next)
{
int visit = e[i].to;
if (v[visit] || visit == fa) continue;
Getroot(visit, x);
Size[x] += Size[visit];
Ma[x] = max(Size[visit], Ma[x]);
}
Ma[x] = max(Ma[x], sum - Size[x]);
if (Ma[x] < Ma[root]) root = x;
} inline void Getval(int x, int fa, int zs)
{
a[++Len].dis = d[x];
a[Len].fa = zs;
for (int i = ls[x]; i; i = e[i].next)
{
int visit = e[i].to;
if (v[visit] || visit == fa) continue;
d[visit] = d[x] + e[i].w;
if (!zs) Getval(visit, x, visit);
else Getval(visit, x, zs);
}
} int cmp(arr x, arr y)
{
return x.dis < y.dis;
} inline LL Acu(int x)
{
Len = , d[x] = ;
Getval(x, , );
sort(a + , a + Len + , cmp);
int l = , r = Len;
for (; l < r; )
{
if (a[l].fa == a[r].fa)
{
if (a[l].dis + a[r - ].dis < S) l++;
else r--;
}
else
{
if (a[l].dis + a[r].dis >= S)
{
ans = min(ans,(LL)(a[l].dis + a[r].dis));
r--;
}
else l++;
}
}
} inline void work(int x)
{
Acu(x);
v[x] = ;
for (int i = ls[x]; i; i = e[i].next)
{
int visit = e[i].to;
if (v[visit]) continue;
sum = Size[visit];
root = ;
Getroot(visit, );
work(root);
}
} int main()
{
scanf("%d%d%d", &n, &S, &E);
memset(v, , sizeof(v));
memset(ls, , sizeof(ls));
for (int i = ; i <= n - ; i++)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
Add(u, v, w);
Add(v, u, w);
}
ans = 0x3f3f3f3f;
sum = n;
Ma[] = 0x3f3f3f3f;
Getroot(, );
work(root);
if (ans > E) printf("-1");
else printf("%lld", ans);
}
JZOJ 5196. 【NOIP2017提高组模拟7.3】B的更多相关文章
- [jzoj 5178] [NOIP2017提高组模拟6.28] So many prefix? 解题报告(KMP+DP)
题目链接: https://jzoj.net/senior/#main/show/5178 题目: 题解: 我们定义$f[pos]$表示以位置pos为后缀的字符串对答案的贡献,答案就是$\sum_{i ...
- [jzoj 5177] [NOIP2017提高组模拟6.28] TRAVEL 解题报告 (二分)
题目链接: https://jzoj.net/senior/#main/show/5177 题目: 题解: 首先选出的泡泡怪一定是连续的一段 L,R 然后 L 一定属于虫洞左边界中的某一个 R 也同样 ...
- JZOJ 5197. 【NOIP2017提高组模拟7.3】C
5197. [NOIP2017提高组模拟7.3]C Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto Pro ...
- JZOJ 5195. 【NOIP2017提高组模拟7.3】A
5195. [NOIP2017提高组模拟7.3]A Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto Pro ...
- JZOJ 5184. 【NOIP2017提高组模拟6.29】Gift
5184. [NOIP2017提高组模拟6.29]Gift (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed ...
- JZOJ 5185. 【NOIP2017提高组模拟6.30】tty's sequence
5185. [NOIP2017提高组模拟6.30]tty's sequence (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB ...
- NOIP2017提高组 模拟赛15(总结)
NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...
- NOIP2017提高组 模拟赛13(总结)
NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...
- NOIP2017提高组模拟赛 10 (总结)
NOIP2017提高组模拟赛 10 (总结) 第一题 机密信息 FJ有个很奇怪的习惯,他把他所有的机密信息都存放在一个叫机密盘的磁盘分区里,然而这个机密盘中却没有一个文件,那他是怎么存放信息呢?聪明的 ...
随机推荐
- IIS断开连接之后internet信息服务里面不显示本地计算机的解决方法
今天我断开了IIS的本地计算机连接之后,出现了无法连接的情况.具体如图: 解决方法: 右击->所有服务->重新启动iis即可.
- dell电脑 win8换win7重启报错及解决方案
Win8换win7 bios 识别不到usb选项 按以下操作即可: 把Secure Boot control 改为Disabled 的,F10保存重启,F12进入bios选择usb启动即可: 安装完系 ...
- Ashx登录
<script type="text/javascript"> window.onload = function () { var url = document.get ...
- ifream页面弹出框遮盖层覆盖父页面
1.首先找到子页面上遮罩层的id, 2.然后再父页面编写个js方法 function shade() { $(".layui-layer-shade").height($(wind ...
- 进程的基础理论、并发(multiprocessing模块)
一.粘包优化方案 之前我们解决粘包的方式是用struct模块来制作一个报头,但是这个解决的方案是有漏洞的,当我们需要传送的文件大于2g时将会报错.所以我们今天将用json来制作报头. from soc ...
- 在LINUX系统中MySQL数据库区分表名的大小写--解决办法
因为linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的, 其中:1)lower_case_table_names = ...
- C#中描述mssql中DateTime的最小值、最大值
首先引用System.Data.SqlTypes 最小值:SqlDateTime.MinValue.Value 最大值:SqlDateTime.MaxValue.Value
- Java static修饰符小记
首先我们明确一点:java是一个纯面向对象的编程语言,它的每一个文件都视为一个类,当我们创建一个对象的时候,就是在调用一个文件,那么这个时候,这个文件(类)里的一些东西,它是需要通过对象来使用或访问, ...
- python 学习实例(cmdMD链接)
实例1:大学网络排名爬取 https://www.zybuluo.com/myles/note/714347
- Java JDBC链接Oracle数据库
package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...