问题标题: 1722矩阵黑白格怎么写

2
0

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
我要回答