UEST OJ1222(DFS)
来源:互联网 发布:网络语打卡失败 编辑:程序博客网 时间:2024/06/05 11:28
南阳CCPC的H题,意思是给你一个4*4的数独要你填写完整,其中每行没列和每个4快都只有数字1-4。
数据很小暴力搞搞。
#include <bits/stdc++.h>using namespace std;#define maxn 11char mp[maxn][maxn];int cnt;struct node { int x, y;}p[22];bool dfs (int pos) { if (pos > cnt) return 1; int x = p[pos].x, y = p[pos].y; bool vis[maxn]; memset (vis, 0, sizeof vis); for (int i = 0; i < 4; i++) { if (mp[x][i] != '*') vis[mp[x][i]-'0'] = 1; if (mp[i][y] != '*') vis[mp[i][y]-'0'] = 1; } if (mp[x^1][y^1] != '*') vis[mp[x^1][y^1]-'0'] = 1; for (int i = 1; i <= 4; i++) { if (!vis[i]) { mp[x][y] = i+'0'; if (dfs (pos+1)) return 1; } } mp[x][y] = '*'; return 0;}int main () { //freopen ("in", "r", stdin); ios::sync_with_stdio(0); int t, kase = 0; cin >> t; while (t--) { cnt = 0; for (int i = 0; i < 4; i++) { cin >> mp[i]; } for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (mp[i][j] == '*') p[++cnt].x = i, p[cnt].y = j; } } dfs (1); cout << "Case #" << ++kase << ":" << endl; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { cout << mp[i][j]; } cout <<endl; } } return 0;}
0 0
- UEST OJ1222(DFS)
- UEST 1353 切绳子
- Uest 1421 Adjacent Bit Counts dp
- DFS
- DFS
- dfs
- dfs
- dfs
- dfs
- DFS
- DFS
- dfs
- DFS
- DFS
- DFS
- dfs
- DFS
- dfs
- c++引用的使用以及实质
- HTTP简介<学习笔记>
- ios入门攻略 03篇 C语言基础【运算符】
- Codeforces Round #327 (Div. 2)C. Median Smoothing
- 使用wireshark分析TCP/IP协议中TCP包头的格式
- UEST OJ1222(DFS)
- 2015南阳理工CCPC The Battle of Chibi
- uva11129
- 有用的信息
- C SSDP 发现设备实现
- 查看android模拟器里的sqlite数据库
- linux如何查看系统信息
- Android RecyclerView 使用解析
- uva10154