【NOIP2017练习】论战大原题(并查集)
2017-10-11 20:54
344 查看
题意:给定一个n个点m条边的无向图。定义一条路径的长度为路径上最小边的权值。
定义dist(i,j)为起点为i,终点为j的长度最长的路径的长度。求出第k大的dist(i,j)(i<j)。
对于所有的数据,保证n≤100000,m≤min(n^2,200000),k≤n(n-1)/2且图连通,w≤10^9。
思路:lyy去年出的题
1 var a,b,c,fa:array[1..300000]of longint; 2 size:array[1..300000]of int64; 3 n,m,i,u,v:longint; 4 k:int64; 5 6 procedure swap(var x,y:longint); 7 var t:longint; 8 begin 9 t:=x; x:=y; y:=t; 10 end; 11 12 procedure qsort(l,r:longint); 13 var i,j,mid:longint; 14 begin 15 i:=l; j:=r; mid:=c[(l+r)>>1]; 16 repeat 17 while mid<c[i] do inc(i); 18 while mid>c[j] do dec(j); 19 if i<=j then 20 begin 21 swap(a[i],a[j]); 22 swap(b[i],b[j]); 23 swap(c[i],c[j]); 24 inc(i); dec(j); 25 end; 26 until i>j; 27 if l<j then qsort(l,j); 28 if i<r then qsort(i,r); 29 end; 30 31 function find(k:longint):longint; 32 begin 33 if k<>fa[k] then fa[k]:=find(fa[k]); 34 exit(fa[k]); 35 end; 36 37 begin 38 assign(input,'original.in'); reset(input); 39 assign(output,'original.out'); rewrite(output); 40 readln(n,m,k); 41 for i:=1 to m do readln(a[i],b[i],c[i]); 42 for i:=1 to n do 43 begin 44 size[i]:=1; fa[i]:=i; 45 end; 46 qsort(1,m); 47 for i:=1 to m do 48 begin 49 u:=find(a[i]); v:=find(b[i]); 50 if u<>v then 51 begin 52 k:=k-size[u]*size[v]; 53 fa[v]:=u; size[u]:=size[u]+size[v]; 54 end; 55 if k<=0 then 56 begin 57 writeln(c[i]); 58 break; 59 end; 60 end; 61 62 63 close(input); 64 close(output); 65 end.
相关文章推荐
- 【NOIP2017练习】怎样学习哲学(计数,DP)
- NOIP 2017 提高组 K: 奶酪 (SPFA || 并查集)
- 2017省组队练习 Number of Connected Components UVALive - 7638 (数论+并查集)
- 【NOIP2017练习】怎样更有力气(二分答案,线性扫描)
- 【NOIP2017练习】溢出(模拟)
- [NOIp2017 Day2 T1] 奶酪cheese(并查集)
- JZOJ5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人 并查集+启发式合并
- 【NOIP2017练习】鏖战字符串(斜率优化DP)
- 【NOIP2017练习】怎样打好隔膜(贪心,堆,带删除priority_queue)
- NOIp 2017 奶酪 【并查集】 By cellur925
- NOIP 2017 提高组 Day2 T1 奶酪【并查集】
- 【NOIP2017练习】函数变换(DP,dfs)
- NOIP 2017 Day2 题1:奶酪 并查集
- NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
- 【JZOJ5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ5350. 【NOIP2017提高A组模拟9.7】陶陶摘苹果
- JZOJ 5408 【NOIP2017提高A组集训10.21】Dark
- 【JZOJ 5433】【NOIP2017提高A组集训10.28】图
- 【NOIP2017】Day2代码
- 【JZOJ 5435】【NOIP2017提高A组集训10.30】Graph