bzoj 3732Network
先搞个最小生成树,然后lca(和之前的一个cf题差不多2333, 纯属颓废了。。)
顺便思考了一下正确性。
因为所求的是所有路径中最大边的最小值。而kruskal每次往里添加的就是最小边。所以在生成树之后两点之间的路径,都是严格按最小的插入的,所以里面的最大边会最小。(貌似说了些废话,,,)
#include<bits/stdc++.h>
#define inf 0x7fffffff
#define LL long long
#define N 100005
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
struct node{
int to,next,v;
}e[N<<];
struct data{
int x,y,v;
}a[N];
int n,m,k;
int head[N],cnt,deep[N],father[N],f[N][],mx[N][];
void insert(int x, int y, int v)
{
e[++cnt].to=y;
e[cnt].next=head[x];
e[cnt].v=v;
head[x]=cnt;
}
int find(int x){return father[x]==x?x:father[x]=find(father[x]);}
bool cmp(data a, data b){return a.v<b.v;}
void dfs(int x, int fa)
{
for (int i=; i<=; i++)
{
f[x][i]=f[f[x][i-]][i-];
mx[x][i]=max(mx[x][i-],mx[f[x][i-]][i-]);
}
for (int i=head[x];i;i=e[i].next)
{
if (e[i].to==fa) continue;
f[e[i].to][]=x;
mx[e[i].to][]=e[i].v;
deep[e[i].to]=deep[x]+;
dfs(e[i].to,x);
}
}
int getans(int x, int y)
{
int ans=;
if (deep[x]<deep[y]) swap(x,y);
int t=deep[x]-deep[y];
for (int i=; i<=; i++)
if (t&(<<i)) ans=max(ans,mx[x][i]),x=f[x][i];
for (int i=; i>=; i--)
if (f[x][i]!=f[y][i])
{
ans=max(ans,max(mx[x][i],mx[y][i]));
x=f[x][i]; y=f[y][i];
}
if (x!=y) return max(ans,max(mx[x][],mx[y][]));
return ans;
}
int main()
{
n=ra(); m=ra(); k=ra();
for (int i=; i<=m; i++)
a[i].x=ra(),a[i].y=ra(),a[i].v=ra();
sort(a+,a+m+,cmp);
for (int i=; i<=n; i++) father[i]=i;
int tot=;
for (int i=; i<=m; i++)
{
int p=find(a[i].x),q=find(a[i].y);
if (q!=p)
father[q]=p,tot++,insert(a[i].x,a[i].y,a[i].v),insert(a[i].y,a[i].x,a[i].v);
if (tot==n-) break;
}
dfs(,);
for (int i=; i<=k; i++)
{
int x=ra(),y=ra();
printf("%d\n",getans(x,y));
}
return ;
}
bzoj 3732Network的更多相关文章
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
- bzoj 刷水
bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...
随机推荐
- vue通过路由传值及在页面刷新后如何保存值
1.普通的路由跳转 方式一:通过routerLinkTo方式,转为a标签的跳转,to里面相当于a标签的href路径 如下: 方式二:通过this.$router.push方式: 如下: 2.带参数的路 ...
- idea2019 jsp页面加载不到静态文件原因No mapping found for HTTP request with URI
最近在使用idea2019 学习ssm,但是发现我在项目引用的静态文件怎么都无法加载出来,找了很久才解决~~ 给上目录结构图: 第一种:使用 ${pageContext.request.context ...
- spring中的@Transactional注解
前几天灿哥问我,在做程序的时候,有没有考虑到事务,如果一个函数在中间执行过程中报错了,它会回滚么?我查了一查,spring确实有这样一个注解,能快速帮助我们配置事务管理.下面我就简单介绍一下这个注解. ...
- Matplotlib 多个图形
章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...
- 5G/NR 波束管理
原文链接:http://www.sharetechnote.com/html/5G/5G_Phy_BeamManagement.html 1 为什么光束管理/光束控制? 我不认为高频部署中的波束传输信 ...
- 201706 Ruby 基础 & 元编程
yield yield self Proc yield带参数 rails中:yield 和 content_for methods.proc.lambda.block 闭包(用proc延长变量的生命周 ...
- install正常,deploy上传jar失败致使打包失败
[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------- ...
- 洛谷 P1247 取火柴游戏
题目传送门 暴力 \((\)由于我这样的初中蒟蒻不\((bu)\)喜\((hui)\)欢\((xie)\)数学证明,所以题解中的证明全是其他大佬的题解已经多次证明过的,这里就不再啰嗦了.\()\) - ...
- 解决上传代码到GitHub报错Push rejected: Push to origin/master was rejected
最近在 push 代码到 github 时,IDEA报错 Push rejected: Push to origin/master was rejected 在网友找了一圈,发现都不是想要的答案 于是 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:属性类Properties
import java.util.Properties; public class PropertiesDemo01{ public static void main(String args[]){ ...