★★☆   输入文件:truck.in   输出文件:truck.out   简单对比
时间限制:1 s   内存限制:128 MB

【题目描述】

【来源】

CCF全国信息学奥林匹克联赛(NOIP2013)复赛Day1

最大生成树+LCA

屠龙宝刀点击就送

#include <algorithm>
#include <ctype.h>
#include <cstdio>
#define N 20005
#define M 50005
using namespace std;
void read(int &x)
{
x=;char ch;
for(;!isdigit(ch);ch=getchar());
for(;isdigit(ch);ch=getchar()) x=x*+ch-'';
}
struct E
{
int x,y,z;
bool operator<(E a)const
{
return z>a.z;
}
}e[M<<];
struct Edge
{
int next,to,dis;
Edge (int next=,int to=,int dis=) :next(next),to(to),dis(dis) {}
}edge[M<<];
bool vis[N];
int dep[N],pre[N],val[N],fa[N],dis[N],q,head[M],cnt,n,m;
int find_(int x)
{
return fa[x]==x?x:fa[x]=find_(fa[x]);
}
void insert(int u,int v,int w)
{
edge[++cnt]=Edge(head[u],v,w);
head[u]=cnt;
}
int min(int a,int b) {return a>b?b:a;}
void dfs(int x)
{
vis[x]=true;
for(int u=head[x];u;u=edge[u].next)
{
int v=edge[u].to;
if(!vis[v])
{
pre[v]=x;
val[v]=edge[u].dis;
dep[v]=dep[x]+;
dfs(v);
}
}
}
void swap(int &a,int &b)
{
int tmp=b;
b=a;
a=tmp;
}
int getans(int a,int b)
{
int min1=0x7fffffff,min2=0x7fffffff;
if(dep[a]<dep[b]) swap(a,b);
while(dep[a]>dep[b])
{
min1=min(min1,val[a]);
a=pre[a];
}
while(a!=b)
{
min1=min(min1,val[a]);
a=pre[a];
min2=min(min2,val[b]);
b=pre[b];
}
return min(min1,min2);
}
int main()
{
freopen("truck.in","r",stdin);
freopen("truck.out","w",stdout);
read(n);
read(m);
for(int x,y,z,i=;i<=m;i++)
{
read(e[i].x);
read(e[i].y);
read(e[i].z);
}
for(int i=;i<=n;i++) fa[i]=i;
sort(e+,e++m);
int num=;
for(int i=;i<=m;i++)
{
int fx=find_(e[i].x),fy=find_(e[i].y);
if(fx!=fy)
{
num++;
fa[fy]=fx;
insert(e[i].x,e[i].y,e[i].z);
insert(e[i].y,e[i].x,e[i].z);
if(num==n-) break;
}
}
for(int i=;i<=n;i++) if(!vis[i]) dfs(i);
read(q);
for(int x,y;q--;)
{
read(x);
read(y);
int fx=find_(x),fy=find_(y);
if(fx!=fy) printf("-1\n");
else printf("%d\n",getans(x,y));
}
return ;
}

COGS 1439. [NOIP2013]货车运输的更多相关文章

  1. 洛谷—— P1967 货车运输 || COGS——C 1439. [NOIP2013]货车运输

    https://www.luogu.org/problem/show?pid=1967#sub  ||  http://www.cogs.pro/cogs/problem/problem.php?pi ...

  2. [Luogu 1967] NOIP2013 货车运输

    [Luogu 1967] NOIP2013 货车运输 一年多前令我十分头大的老题终于可以随手切掉了- 然而我这码风又变毒瘤了,我也很绝望. 看着一年前不带类不加空格不空行的清纯码风啊,时光也好像回去了 ...

  3. NOIP2013 货车运输(最大生成树,倍增)

    NOIP2013 货车运输(最大生成树,倍增) A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道 ...

  4. NOIP2013 货车运输 (最大生成树+树上倍增LCA)

    死磕一道题,中间发现倍增还是掌握的不熟 ,而且深刻理解:SB错误毁一生,憋了近2个小时才调对,不过还好一遍AC省了更多的事,不然我一定会疯掉的... 3287 货车运输 2013年NOIP全国联赛提高 ...

  5. NOIP2013 货车运输

    3.货车运输 (truck.cpp/c/pas) [问题描述] A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货 ...

  6. Codevs3278[NOIP2013]货车运输

    3287 货车运输 2013年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond      题目描述 Description A 国有 ...

  7. 【洛谷P1967】[NOIP2013]货车运输

    货车运输 题目链接 显然,从一点走到另一点的路径中,最小值最大的路径一定在它的最大生成树上 所以要先求出最大生成树,再在生成树上找最近公共祖先,同时求出最小值. #include<iostrea ...

  8. noip2013货车运输

    P1967 货车运输 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过 ...

  9. NOIP2013货车运输[lca&&kruskal]

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

随机推荐

  1. ubuntu 源、codename 与 sources.list 文件

    查看 codename $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt ...

  2. [laravel]要点

    1. routing 2. Ioc 3. Facade 4. Artisan 1.routing 参考:http://laravel.com/docs/4.2/routing 了解routing之前先 ...

  3. Java中断机制

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法 ...

  4. 【转】[钉钉通知系列]Jenkins发布后自动通知

    转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/7211006.html 阅读目录 一.前言 二.使用钉钉推送的优势 三.配置 一.前言 最近使用Jenk ...

  5. python之路,day7-面向对象变成

    本篇内容: 面向对象.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法: #@staticmethod只是名义上归类管理,实际上跟类没什么关系 ...

  6. Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别

    1.转自:https://blog.csdn.net/zwx521515/article/details/79300453 在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用&qu ...

  7. 任务49:Identity MVC:Model前端验证

    任务49:Identity MVC:Model前端验证 前端验证使用的是jquery的validate的组件 _ValidationScriptsPartial.cshtml 在我们的layout里面 ...

  8. 二分匹配ZOJ3646

    //题意:类比线代里:把矩阵中的U看作[1],是否满足一个满秩矩阵 //利用二分匹配就是 //每一行都有相对应的列: #include<iostream> #include<stri ...

  9. bzoj 5498: [2019省队联测]皮配【dp】

    是个神仙dp-- 参考:https://www.luogu.org/blog/xzz-233/solution-p5289 设f[i][j][k]是前i个有限制的城市,所有学校中选蓝色阵营有j人,有限 ...

  10. mac的日常使用总结

    目录 有一个github的仓库:(强烈推荐) 不推荐的但是可以试试的一些链接: # 关于mac book的使用教程 github简直是一个宝藏,发现好多各种好玩的东西, 爱了爱了, 开源一定是未来, ...