第二周-2.1象棋

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oytf10001/article/details/88593666

                                   象棋


描述

你有足够多的象棋“车”,在一个n×n的棋盘上你能放多少个“车”呢?注意,所给棋盘上有些位置不能放任何东西。同时,某一行(列)最多只能存在一个“车”。

输入

第一行为一个正整数n。

接下来n行,每行包含n个整数,若为0表示这个位置不能放“车”;若为1表示这个位置可以放“车”。

输出

输出一个整数,表示最多能放多少个“车”。

样例1输入

5
1 0 0 0 0
0 0 0 0 0
0 0 0 1 0
1 1 0 1 0
0 0 0 1 0

样例1输出

3

样例1解释

我们这样放就只能放2个“车”:

车 0 0 0 0
0 0 0 0 0
0 0 0 1 0
1 1 0 车 0
0 0 0 1 0

若我们这样放就能放下3个了:

车 0 0 0 0
0 0 0 0 0
0 0 0 1 0
1 车 0 1 0
0 0 0 车 0

样例2

请查看下发文件内的sample2_input.txt和sample2_output.txt。

限制

对于30%的数据,n ≤ 5;

对于60%的数据,n ≤ 20;

对于100%的数据,n ≤ 500。

时间:2 sec

空间:256 MB

提示

[将横坐标和纵坐标看做是二分图的X集和Y集,会了吗?]

另外,为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板,也提供了含有算法的大部分实现细节的程序。

你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。

这些程序可以从【这里】下载。

猜你喜欢

转载自blog.csdn.net/oytf10001/article/details/88593666