题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1059
分析:不论如何交换,同一行或同一列的点还是同一行或同一列,如果我们称最后可以排成题目要求的主对角线的n个黑色格子为“有用黑色格子",那么如果在初始状态中有2个黑色格子在同一行或同一列那么它们中间必有一个不是”有用黑色格子“(因为不论如何交换他们总是同一行或同一列,必定不能同时成为主对角线上的有用黑色格子)。所以我们要找的n个”有用黑色格子"它们的横纵坐标都不同。问题就变成了从初始状态中的所有黑色格子中挑出n个黑色格子使得他们的横纵坐标都不同,如果可以就Yes,否则就No。那么很容易想到用二分图匹配处理,左边的点为x坐标,右边的点为y坐标,每个黑色格子对应一条边,然后如果最大匹配数==n,就可以了,否则不行。GG