2
已解决
贾敬波
高级守护
高级守护
http://judge.codingtang.com/problem/1722/这道题目能否只使用二维数组的知识点进行求解?
1
已采纳
梁锦程
高级光能
高级光能
额(⊙o⊙)…,这题要用二分图分配,建议你去查一下“匈牙利算法”
然而这里给你推荐一个网站http://blog.csdn.net/dark_scope/article/details/8880547
如果还是不会,请追问,如果我看到了会把主程序发给你
梁锦程在2018-01-10 21:37:35追加了内容
关键在于建模,如果(i,j)点所给出的点值为1的话,那我们就建一条从i到j的边,建完边后就进行二分图匹配,如果可以完全匹配(即全部匹配数为n),则方阵的主对角线是可以全为黑色的,否则不能。
为什么呢?
我们可以手工模拟一下,比如说样例的第二个测试数据。
3
0 0 1
0 1 0
1 0 0
根据我上面说的,我们会建这几条边:
然后,我们将矩阵的第一行和第二行交换下试试??
得到下面的图片:
发现交换后的图片有什么差别??
其实只是将第一张图片右边的一二两点交换,然后重新编号而已,其他还是不变的!!
我们再看一看这个测试点的最终状态:
1 0 0
0 1 0
0 0 1
对应的图为:
最后状态是图是一对一的,所以从上面我们就可以知道,其实只要建的图能完全匹配就行,因为无论是交换行还是列,都是不会改变匹配数的。
3
叶卓舒
初级守护
初级守护
可以。
判断每行每列是否都有一个或更多1。如果有就输出Yes,否则输出No。
这样做不知道为什么只能得到90分。
还有一个测试点我看数据的。
1
0
0