codevs 3287 货车运输 NOIP2013提高组
题目链接:http://codevs.cn/problem/3287/
题解:
和bzoj3732一毛一样,只不过是找最大生成树和最小值罢了,具体参见我的bzoj3732的博客
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 100010
#define MAXM 1000010
int n,m,k,heade[MAXN],father[MAXN],fa[][MAXN],dep[MAXN];
struct edge1
{
int u,v,val;
}e1[MAXM];
struct edge
{
int v,next,val;
}e[MAXM];
int min(int x,int y)
{
return x<y?x:y;
}
int find(int x)
{
return father[x]=father[x]==x?x:find(father[x]);
}
bool cmp(edge1 a,edge1 b)
{
return a.val>b.val;
}
void adde(int i,int x,int y,int z)
{
e1[i]=(edge1){x,y,z};
}
void dfs(int u)
{
for(int i=heade[u];i;i=e[i].next)
{
if(!dep[e[i].v])
{
dep[e[i].v]=dep[u]+;
fa[][e[i].v]=u;
dfs(e[i].v);
}
}
}
int LCA(int u,int v)
{
if(dep[u]>dep[v])swap(u,v);
for(int i=;~i;i--)
if(dep[fa[i][v]]>=dep[u])
v=fa[i][v];
if(u==v)return u;
for(int i=;~i;i--)
if(fa[i][u]!=fa[i][v])
{
u=fa[i][u];
v=fa[i][v];
}
return fa[][u];
}
int main()
{
scanf("%d%d",&n,&m);
int x,y,z;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
adde(i<<,x,y,z);
adde(i<<+,y,x,z);
}
for(int i=;i<=n;i++)
father[i]=i;
sort(e1+,e1+m*+,cmp);
int cnt=;
for(int i=;i<=m*;i++)
{
x=find(e1[i].u);
y=find(e1[i].v);
if(x!=y)
{
int u=e1[i].u,v=e1[i].v;
father[y]=x;
++cnt;
e[cnt<<]=(edge){v,heade[u],e1[i].val};
heade[u]=cnt<<;
e[(cnt<<)+]=(edge){u,heade[v],e1[i].val};
heade[v]=(cnt<<)+;
if(cnt==n-)break;
}
}
dep[]=fa[][]=;
dfs();
for(int i=;i<=;i++)
for(int j=;j<=n;j++)
fa[i][j]=fa[i-][fa[i-][j]];
scanf("%d",&k);
while(k--)
{
scanf("%d%d",&x,&y);
int lca=LCA(x,y),t=x,ans=;
if(!lca)
{
printf("-1\n");
continue;
}
while(t!=lca)
{
for(int i=heade[t];i;i=e[i].next)
{
if(dep[e[i].v]<dep[t])
{
t=e[i].v;
ans=min(ans,e[i].val);
break;
}
}
}
t=y;
while(t!=lca)
{
for(int i=heade[t];i;i=e[i].next)
{
if(dep[e[i].v]<dep[t])
{
t=e[i].v;
ans=min(ans,e[i].val);
break;
}
}
}
printf("%d\n",ans);
}
return ;
}
codevs 3287 货车运输 NOIP2013提高组的更多相关文章
- Codevs 3287 货车运输 2013年NOIP全国联赛提高组(带权LCA+并查集+最大生成树)
3287 货车运输 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description A 国有 n 座 ...
- Codevs 3287 货车运输 == 洛谷P1967
3287 货车运输 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description A 国有 n 座城市,编 ...
- Codevs 3287 货车运输
题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过 ...
- [NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
一开始觉得是网络流..仔细一看应该是最短路,再看数据范围..呵呵不会写...这道题是最大生成树+最近公共祖先.第一次写..表示各种乱.. 因为要求运输货物质量最大,所以路径一定是在最大生成树上的.然后 ...
- [NOIp2013提高组]积木大赛/[NOIp2018提高组]铺设道路
[NOIp2013提高组]积木大赛/[NOIp2018提高组]铺设道路 题目大意: 对于长度为\(n(n\le10^5)\)的非负数列\(A\),每次可以选取一个区间\(-1\).问将数列清零至少需要 ...
- [NOIP2013 提高组] 华容道 P1979 洛谷
[NOIP2013 提高组] 华容道 P1979 洛谷 强烈推荐,更好的阅读体验 经典题目:spfa+bfs+转化 题目大意: 给出一个01网格图,和点坐标x,y空格坐标a,b,目标位置tx,ty要求 ...
- 【NOIP2013提高组】货车运输
货车运输 (truck.cpp/c/pas) [问题描述] A国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有q辆货车在运输货物,司机们想知道每辆 ...
- 洛谷P1967 [NOIP2013提高组Day1T2]货车运输
P1967 货车运输 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过 ...
- NOIP2013 提高组 Day1
https://www.luogu.org/problem/lists?name=&orderitem=pid&tag=83%7C30 期望得分:100+100+100=300 实际得 ...
随机推荐
- CentOS 安装MariaDB
1.安装 #同时安装mariadb和mariadb-server [root@bigdata-senior01 yum.repos.d]# yum -y install mariadb mariadb ...
- [洛谷P4345][SHOI2015]超能粒子炮·改
题目大意:给你$n,k$,求:$$\sum\limits_{i=0}^k\binom n i\pmod{2333}$$题解:令$p=2333,f(n,k)\equiv\sum\limits_{i=0} ...
- BZOJ3930:[CQOI2015]选数——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=3930 https://www.luogu.org/problemnew/show/P3172#sub ...
- HDU4812 D tree 【点分治 + 乘法逆元】
D树 时间限制:10000/5000 MS(Java / Others)内存限制:102400/102400 K(Java / Others) 总共提交5400个已接受的提交1144 问题描述 南京理 ...
- React高阶组件总结
在多个不同的组件中需要用到相同的功能,这个解决方法,通常有Mixin和高阶组件. Mixin方法例如: //给所有组件添加一个name属性 var defaultMixin = { getDefaul ...
- CentOS 6.5 下安装 QT 4
1. 获取下载地址 从我到网盘下载: qt-creator-opensource-linux-x86_64-3.5.1.run qt-everywhere-opensource ...
- qt4+vs2010 环境搭建
1.安装开发所需的软件: vs2010(包括VS2010SP1dvd1,Visual_Assist_X_10.9.2062.0_Crack等) QT: qt-win-opensource-4.8.5- ...
- Scrapy中的Callback如何传递多个参数
在scrapy提交一个链接请求是用 Request(url,callback=func) 这种形式的,而parse只有一个response参数,如果自定义一个有多参数的parse可以考虑用下面的方法实 ...
- [技巧篇]04.使用PowerDesigner逆向生成
- 洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup
https://www.luogu.org/problem/show?pid=3029 题目描述 Farmer John has hired a professional photographer t ...