博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1059 二分图匹配
阅读量:7037 次
发布时间:2019-06-28

本文共 1770 字,大约阅读时间需要 5 分钟。

我们知道,对于每一行来说,交换行,是不改变这行的状态的,

交换列只是改变颜色的顺序,对于颜色的个数也没有改变,列

也同样存在这一性质

那么最后我们要求的是主对角线上都是黑色,也就是每行选一个黑

色的,且任意两行选的黑色的不在同一列,我们构造一张二分图,

图的一边是行,另一边是列,所以对于每个黑点连边,二分图匹配即可

//By BLADEVILvar    t                                :longint;    i                                :longint;    pre, other                        :array[0..40010] of longint;    last                            :array[0..300] of longint;    l                                :longint;    flag                            :array[0..300] of boolean;    link                            :array[0..300] of longint;    procedure connect(x,y:longint);begin    inc(l);    pre[l]:=last[x];    last[x]:=l;    other[l]:=y;end;function find(x:longint):boolean;var    q, p                            :longint;begin    q:=last[x];    while q<>0 do     begin        p:=other[q];        if not flag[p] then        begin            flag[p]:=true;            if (link[p]=0) or (find(link[p])) then            begin                link[p]:=x;                exit(true);            end;        end;        q:=pre[q];    end;    exit(false);end;    procedure main;var    n                                :longint;    i, j                            :longint;    x                                :longint;begin    read(n);    l:=0;    fillchar(last,sizeof(last),0);    for i:=1 to n do         for j:=1 to n do         begin            read(x);            if x=1 then connect(i,j);        end;    fillchar(link,sizeof(link),0);        for i:=1 to n do     begin        fillchar(flag,sizeof(flag),false);        if not find(i) then        begin            writeln('No');            exit;        end;    end;    writeln('Yes');end;        begin    read(t);    for i:=1 to t do main;end.

 

转载于:https://www.cnblogs.com/BLADEVIL/p/3490068.html

你可能感兴趣的文章
python unittest 深入failfast及实际应用【示例】
查看>>
MSSQL中文排序规则设置
查看>>
30 个有关 Python 的小技巧
查看>>
CDN下nginx获取用户真实IP地址
查看>>
Jsp技术总结
查看>>
Sakai 11.x Build Failure
查看>>
面向对象+模块化设计绘制canvas星空动画
查看>>
Elastic Search学习笔记3——集群配置
查看>>
Unity客户端资源智能管理
查看>>
SVN在Windows下的安装配置步骤
查看>>
网页两侧悬浮广告js代码
查看>>
算法练习:判断一个字符串中的字符是否唯一(只用基本数据结构)
查看>>
淘宝技术的科普贴图文
查看>>
http://itunes.apple.com/lookup?id=获取不到版本
查看>>
理解Javascript的状态容器Redux
查看>>
制作liveusb实现ubuntserver12全自动无人职守安装
查看>>
centos7的fstab要小心
查看>>
Windows phone8 基础篇(三)常用控件(二)
查看>>
架构师速成4.8-幼儿园书单资料推荐
查看>>
MySQL-Proxy实现读写分离部署文档
查看>>