11464Even Parity
来源:互联网 发布:用网络命令查看dns 编辑:程序博客网 时间:2024/06/14 06:57
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <cstdlib>using namespace std;const int INF = ~0U >> 1;const int maxn = 20;const int dx[] = {0, -1, 0, 1};const int dy[] = {-1, 0, 1, 0};int T, n, kase = 0;int str[maxn][maxn], s[maxn][maxn];void print() { for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) printf("%d ", s[i][j]); printf("\n"); }}int slove(int ss) { int ans = 0; for(int i = 1; i <= n; ++i) { if(ss & (1 << (i - 1))) { if(str[1][i] == 0) { s[1][i] = 1; ++ans; } } else { if(str[1][i] == 1) return INF; } } //printf("++++\n"); bool ok = true; int nx, ny; for(int i = 1; i < n; ++i) { for(int j = 1; j <= n; ++j) { int cnt = 0; for(int k = 0; k < 3; ++k) { nx = dx[k] + i, ny = dy[k] + j; cnt += s[nx][ny]; } nx = i + dx[3], ny = j + dy[3]; if(cnt == 1 || cnt == 3) { /// jishu if(s[nx][ny] == 0) { ++ans; s[nx][ny] = 1; } } else { //if(ss == 0) printf("%d %d****%d %d****%d %d\n", i, j, dx[3], dy[3], nx, ny); if(s[nx][ny] == 1) { ok = false; goto leap; } } } } //if(ss == 0) print();leap: if(ok) return ans; else return INF;}int main() { scanf("%d", &T); while(T--) { memset(str, 0, sizeof(str)); memset(s, 0, sizeof(s)); scanf("%d", &n); for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) scanf("%d", &str[i][j]); memcpy(s, str, sizeof(str)); //print(); int ans = INF; for(int i = 0; i < (1 << n); ++i) { int d = slove(i); //printf("%d+++\n", d); if(ans > d) ans = d; memcpy(s, str, sizeof(str)); } //print(); //printf("%d----\n", ans); printf("Case %d: ", ++kase); if(ans == INF) printf("-1\n"); else printf("%d\n", ans); } return 0;}
0 0
- UVA 11464 - Even Parity
- uva 11464 - Even Parity
- Uva-11464-Even Parity
- uva 11464Even Parity
- Uva 11464 - Even Parity
- Uva 11464 - Even Parity
- uva 11464 - Even Parity
- UVA 11464 Even Parity
- UVA 11464 Even Parity
- Even Parity UVA 11464
- UVA - 11464 Even Parity
- UVA - 11464 Even Parity
- 11464 - Even Parity
- UVa:11464 Even Parity
- Uva 11464 Even Parity
- UVA 11464 Even Parity
- UVa 11464 Even Parity
- UVA - 11464 Even Parity
- 内存泄露自动探测神器——LeakCanary
- 分布式中的一些概念
- Windows下Redis的安装使用
- ScrollView来代替TableView的使用
- Android webview详解
- 11464Even Parity
- set的一些用法,以后更新
- 3224: Tyvj 1728 普通平衡树
- LeakCanary开源项目(使用及原理github项目文档的翻译)
- Redis源码解析:04字典的遍历dictScan
- Linux内核构建系统之十
- 【codevs2147】数星星
- JQuery不同版本的差异(checkbox)
- JAVA之JDBC连接MYSQL