首页 > 代码库 > ZJOI2007矩阵游戏
ZJOI2007矩阵游戏
我们应该通过思考得到这样一个性质:如果一个点被选了,那么与它同行同列的点都不能选
然后就是裸的二分图匹配了……
(我应该能想出这道题来的,可是看了看题觉得没思路就去看题解了,唉……以后这种水题自己一定要动脑想想!)
代码:这种水题应该1A吧
1 var i,j,n,t:longint; 2 flag:boolean; 3 p:array[0..250] of longint; 4 v:array[0..250] of boolean; 5 a:array[0..250,0..250] of longint; 6 function find(x:longint):boolean; 7 var i:longint; 8 begin 9 for i:=1 to n do10 if (not(v[i])) and (a[x,i]=1) then11 begin12 v[i]:=true;13 if (p[i]=0) or (find(p[i])) then14 begin15 p[i]:=x;16 exit(true);17 end;18 end;19 exit(false);20 end;21 procedure init;22 begin23 readln(n);24 fillchar(p,sizeof(p),0);25 for i:=1 to n do26 begin27 for j:=1 to n do read(a[i,j]);28 readln;29 end;30 end;31 procedure main;32 begin33 flag:=true;34 for i:=1 to n do35 begin36 fillchar(v,sizeof(v),false);37 if not(find(i)) then begin flag:=false;break;end;38 end;39 if flag then writeln(‘Yes‘) else writeln(‘No‘);40 end;41 42 begin43 readln(t);44 while t>0 do45 begin46 dec(t);47 init;48 main;49 end;50 end.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。