ACM: uva 11464
来源:互联网 发布:电脑网络连接显示未知 编辑:程序博客网 时间:2024/05/17 15:56
D
EvenParity
Input: Standard Input
Output: Standard Output
We have a grid of size N x N. Each cell of the grid initiallycontains a zero(0) or a one(1).
The parity of a cell is the number of 1s surrounding thatcell. A cell is surrounded by at most 4 cells (top, bottom, left,right).
Suppose we have a grid of size4 x 4:
1
0
1
0
The parity of each cell wouldbe
1
3
1
2
1
1
1
1
2
3
3
1
0
1
0
0
2
1
2
1
0
0
0
0
0
1
0
0
For this problem,you have to change some of the 0s to 1s so that the parity of everycell becomes even. We are interested in the minimum number oftransformations of 0 to 1 that is needed to achieve the desiredrequirement.
Input
The first line of input is an integerT(T<30)that indicates the number of test cases. Each case starts with apositive integer N(1≤N≤15).Each of the next N linescontain Nintegers (0/1)each. The integers are separated by a single space character.
Output
For each case,output the case number followed by the minimum number oftransformations required. If it's impossible to achieve the desiredresult, then output -1 instead
Sample Input
3
3
0 0 0
0 0 0
0 0 0
3
0 0 0
1 0 0
0 0 0
3
1 1 1
1 1 1
0 0 0
Output for Sample Input
Case 1: 0
Case 2: 3
Case 3: -1
题意: n*n的矩阵中,现在要使得每个格子的上下左右相加的元素和为偶数, 每个格子的元素
解题思路:
代码:
#include<cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define MAX 16
const int INF = (1<<29);
int n;
int a[MAX][MAX], b[MAX][MAX];
inline int min(int a, int b)
{
}
int solve(int situation)
{
}
int main()
{
//