题目链接:https://cn.vjudge.net/problem/HDU-2819 Given an N*N matrix with each entry equal to 0 or 1. You can swap any two rows or any two columns. Can you find a way to make all the diagonal entries equal to 1? InputThere are several test cases in the in…
Given an N*N matrix with each entry equal to 0 or 1. You can swap any two rows or any two columns. Can you find a way to make all the diagonal entries equal to 1? InputThere are several test cases in the input. The first line of each test case is an…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2819 题目大意:给你一个n*n的01矩阵,问是否可以通过任意交换整行或者整列使得正对角线上都是1. 解题思路: 按行列建图,求最大匹配,若最大匹配数<n,则肯定无解(矩阵的秩要等于n才有解).若有解,则肯定可以通过只交换行或者交换列得到.所以我们从i=1 to n检查link[i]=i(link[i]表示第i列的1对应的行号)是否成立,否则找到link[j]=i交换link[i]和link[j]并…
题意:一个N*N的01矩阵,行与行.列与列之间可以互换.要求变换出一个对角线元素全为1的矩阵,给出互换的行号或列号. 分析:首先一个矩阵若能构成对角线元素全为1,那么矩阵的秩为N,秩小于N的情况无解.所以一个矩阵可以仅通过行变换不能得到最后结果,那么仅通过列变换或者行列变换都不能得到. 可以将行号看作二分图的X部,列号对应二分图Y部,那么矩阵Mij为1就可以视作第i行可以与第j列相匹配.而构成对角线全1的情况就是行与列之间有N对匹配关系,若小于N则无解. 根据所给的矩阵建二分图跑匈牙利,然后可以…
 Swap Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2819 Description Given an N*N matrix with each entry equal to 0 or 1. You can swap any two rows or any two columns. Can you find a way to ma…
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2819 [题目大意] 给出一个棋盘,由白格子和黑格子组成,可以交换棋盘的行列, 使得其主对角线为黑格子,其余均为白格子,问是否能达成, 如果能达成输出交换步骤,否则输出-1 [题解] 我们对于所有的黑格子将其从属的行标和列标相连,做一遍二分图匹配, 对于每一行拥有的黑块如果不是在对应的列,我们就将这一行和对应的行互换, [代码] #include <cstdio> #include <al…
题意:如果可以交换行列,问主对角线能不能全为1 分析:要想主对角线全为1很明显要有N个行列不想同的点就行了,可以用二分图匹配计算出来多能有几个.如果小与N就不能.输出要是对的就行,不必和答案一样 ************************************************************************ #include<stdio.h> #include<algorithm> #include<; ; j<=N; j++)     …
Swap http://acm.hdu.edu.cn/showproblem.php?pid=2819 Special Judge Problem Description Given an N*N matrix with each entry equal to 0 or 1. You can swap any two rows or any two columns. Can you find a way to make all the diagonal entries equal to 1?  …
Swap Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2174    Accepted Submission(s): 774Special Judge Problem Description Given an N*N matrix with each entry equal to 0 or 1. You can swap any tw…
http://acm.hdu.edu.cn/showproblem.php?pid=2828 给定n个灯,m个开关,使得每栈灯亮,前提是控制这栈灯的开关的状态是其中一个.(题目应该都看得懂) 其实我想了挺久的,比赛的时候还想不出.但是直觉就告诉我是二分图匹配,虽然网上说什么精确覆盖. 不懂. 我的做法是: m个开关,则有2 * m种状态,以1号顶点表示1号灯是开得,1 + m号顶点表示1号灯是关的. 那么,进行一次二分匹配,模板需要改一下, 1.如果第i号灯需要第j个开关是ON的状态,但是第j个…