NOIP2010 关押罪犯
来源:互联网 发布:李毅吧吧主是谁 知乎 编辑:程序博客网 时间:2024/05/16 11:29
传送门
https://vijos.org/p/1776
题目大意
额,自己看吧
题解
对于这种有对立关系(只有1对)的时候,我们考虑拆点
x拆为x和x+n
按数值排序后,倒序合并,a和b+n以及b和a+n合并,如果a和b在一个集合中那么输出当前值
注意无冲突情况输出0
var x:array[0..100005,0..3]of longint; fa:array[0..40000]of longint; i,j,k:longint; n,m,a,b:longint;procedure sort(l,r: longint);var i,j,k,a,y: longint;begin i:=l; j:=r; a:=x[(l+r) div 2,3]; repeat while x[i,3]<a do inc(i); while a<x[j,3] do dec(j); if not(i>j) then begin for k:=1 to 3 do begin y:=x[i,k]; x[i,k]:=x[j,k]; x[j,k]:=y; end; inc(i); dec(j); end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r);end;function get(a:longint):longint;begin if fa[a]=a then exit(a); fa[a]:=get(fa[a]); exit(fa[a]);end;begin readln(n,m); for i:=1 to m do readln(x[i,1],x[i,2],x[i,3]); sort(1,m); {x[i,3]} for i:=1 to 2*n do fa[i]:=i; for i:=m downto 1 do begin a:=get(x[i,1]); b:=get(x[i,2]); if a=b then begin writeln(x[i,3]); halt; end else begin fa[a]:=get(x[i,2]+n); fa[b]:=get(x[i,1]+n); end; end; writeln(0);end.
0 0
- [NOIP2010 T3]关押罪犯
- NOIP2010 关押罪犯
- noip2010 关押罪犯
- 【P1776】关押罪犯 noip2010
- NOIP2010关押罪犯
- NOIP2010 关押罪犯
- NOIP2010 关押罪犯
- [NOIP2010]关押罪犯
- NOIP2010 关押罪犯
- NOIP2010关押罪犯
- noip2010 关押罪犯
- NOIp2010 关押罪犯
- NOIP2010关押罪犯
- 【NOIP2010】关押罪犯
- 【NOIP2010】关押罪犯
- 关押罪犯(noip2010)
- 【noip2010】关押罪犯
- NOIP2010 关押罪犯
- head first python读书笔记(十)
- 数据缓存
- java面试题九 数组初始化
- 理解Bitcode:一种中间代码
- c++ primer第五版(中文)习题答案 第十章第三节第一小节-向算法传递函数
- NOIP2010 关押罪犯
- iOS-Core-Animation-Advanced-Techniques(七-1)
- Eclipse下导出java程序可执行的jar包图片无法显示问题的一种解决方法
- HDU 5029 Relief grain (2014年广州赛区网络赛H题)
- Leetcode - 258 - Add Digits
- [BZOJ1492][NOI2007]货币兑换Cash
- POJ 1562 解题报告
- [hash 表达式树]UVa12219 - Common Subexpression Elimination
- MYSQL管理之主从同步管理