题面 题意:给你N个点,M条边的无向图 (N<=15000,M<=30000)第j条边的长度为 dj (1<=dj<=1e9),然后K个询问 (1<=K<=20000). 每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少? 题解:求所有路径上,那些最大的边中最小的值,也就是“最小”的路径上的最大值,那也是就是最小生成树上,路径的最大值,多次询问,利用树链剖分或者倍增解决 #include<bits/stdc++.h> usi…
3732: Network 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3732 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1-N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 15,000). 每个询问的…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3732 [题意] 给定一个无向图,处理若干询问:uv路径上最长的边最小是多少? [思路一] 最小生成树+倍增算法. 同NOIP2013货车运输. [代码] #include<set> #include<cmath> #include<queue> #include<vector> #include<cstdio> #include<…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3732 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N.  图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 20,000).  每个询问的格式是:A B,表示询问从…
题目大意:给定一个n个点m条边的无向连通图.k次询问两点之间全部路径中最长边的最小值 NOIP2013 货车运输.差点儿就是原题...仅仅只是最小边最大改成了最大边最小.. . 首先看到最大值最小第一反应二分答案 可是二分答案O(kmlogn)明显做不了 这里我们考虑最小生成树 先生成一棵最小生成树,然后每次询问利用倍增LCA求出路径上的最大权值就可以 本蒟蒻竟然把LCA写挂了... 并且例子还过了... 伤不起啊... 90%达成 剩下一道刷点啥呢... #include<cstdio> #…
2016.1.28 纪念我BZOJ第一题 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 15,000). 每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少? Input 第一行: N,…
http://www.lydsy.com/JudgeOnline/problem.php?id=3732 首先想到,要使得最长边最短,应该尽量走最短的边,在MST上. 然后像LCA那样倍增娶个最大值 #include <bits/stdc++.h> #define IOS ios::sync_with_stdio(false) using namespace std; #define inf (0x3f3f3f3f) typedef long long int LL; + ; struct E…
先做最小生成树,这样就保证了最大值最小 然后随便用个什么东西维护一下最大值,我用的树剖log^2,倍增会更快 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=100005; int n,m,k,f[N],h[N],cnt,va[N],de[N],fa[N],si[N],hs[N],fr[N],id[N],rl[N],tot; struct q…
[题解] 首先,我们可以发现,A到B的所有路径中,最长边的最小值一定在最小生成树上.我们用Kruskal最小生成树时,假设有两个点集U,V,若加入一条边w(u,v)使U,V联通,那么w就是U中每个点到V中每个点的路径上的最长边.因为我们每次在可选的w中选择了最小的,所以可以满足最长边最短的要求. 我们可以做kruskal,当A与B恰好连通时,当前加入的边w就是A中的每个点到B中的每个点的最长边. 但这种做法在本题中似乎不可行..因为本题中询问有很多组,效率上有问题(或者是我太傻了QAQ 其实也可…
kruskal重构树 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1-N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 15,000). 每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少? Input 第一行: N, M, K. 第2..…