首页 > 代码库 > [HNOI2006]超级英雄Hero
[HNOI2006]超级英雄Hero
这题一看就应该知道是二分图匹配……
我记得有个类似的题有一个并查集的解法,但是我找不到了……
1 var i,n,m:longint; 2 p:array[0..1500] of longint; 3 v:array[0..1500] of boolean; 4 a:array[0..1500,1..2] of longint; 5 function find(x:longint):boolean; 6 var i,y:longint; 7 begin 8 for i:=1 to 2 do 9 begin 10 y:=a[x,i]; 11 if v[y] then continue; 12 v[y]:=true; 13 if (p[y]=0) or (find(p[y])) then 14 begin 15 p[y]:=x; 16 exit(true); 17 end; 18 end; 19 exit(false); 20 end; 21 procedure main; 22 begin 23 readln(n,m); 24 for i:=1 to m do begin readln(a[i,1],a[i,2]);inc(a[i,1]);inc(a[i,2]);end; 25 for i:=1 to m do 26 begin 27 fillchar(v,sizeof(v),false); 28 if not(find(i)) then begin writeln(i-1);halt;end; 29 end; 30 writeln(m); 31 end; 32 begin 33 main; 34 end.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。