UVA11464
来源:互联网 发布:淘宝店拍照技巧 编辑:程序博客网 时间:2024/06/01 16:08
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<map>#include<set>#include<sstream>using namespace std;const int INF = 0x3f3f3f3f;int board[20][20];int temp[20][20];int n;int check(int s){ for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { temp[i][j] = board[i][j]; } } for (int i = 1; i <= n; i++) { if (s & 1 << i - 1) { if (board[1][i] == 1) { return INF; } else temp[1][i] = 1; } } for (int i = 2; i <= n; i++) { for (int j = 1; j <= n; j++) { int sum = 0; if (i > 2) sum += temp[i - 2][j]; if (j != 1) sum += temp[i - 1][j - 1]; if (j != n) sum += temp[i - 1][j + 1]; if (sum % 2 == 0 && board[i][j] == 1) { return INF; } temp[i][j] = sum % 2; } } int Count = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) if (temp[i][j] != board[i][j]) Count++; return Count;}int main(){ int T; cin >> T; int cas = 1; while (T--) { cin >> n; memset(board, 0, sizeof(board)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { cin >> board[i][j]; } } int end = 1 << n; int Max = INF; for (int s = 0; s < end; s++) { Max = min(Max, check(s)); } if (Max == INF) { Max = -1; } printf("Case %d: %d\n", cas++, Max); } return 0;}
0 0
- UVa11464
- uva11464
- UVa11464
- UVA11464
- uva11464
- Uva11464 - Even Parity
- uva11464 - Even Parity
- UVA11464 Even Parity
- UVA11464偶数矩阵
- uva11464(状态压缩)
- UVA11464 Even Parity
- Uva11464 - Even Parity
- uva11464 - Age Sort
- uva11464 Even Parity
- UVa11464-Even Parity
- UVA11464 BNU19882 Even Parity
- uva11464 Even Parity
- uva11464(递推)
- 用bcdedit为Windows 7系统添加ISO启动项
- C++之 RAII基本理解与使用
- sublime编译运行c语言后中文乱码的解决
- 第一章HTML基础
- &和&&,|和||的用法区别
- UVA11464
- MYSQL数据库语句之单表操作(二)
- 第二章CSS基础
- 欢迎使用CSDN-markdown编辑器
- PHP 数据中的反斜杠插入数据库后消失了
- MYSQL数据库语句之多表操作(三)
- 两台笔记本屏幕扩展
- MYSQL数据库语句之其他(四)
- 带你跳出H5输入框input的坑