Tsinsen A1111 填数字
2016-04-03 21:17
399 查看
http://www.tsinsen.com/A1111
分析:瞎搜一波就过了..胆战心惊的。虽然显示的是0ms,但瞎搜老觉得不舒服。对了有个坑爹的地方,讲道理1不是素数,输入1应该输出NO,但答案是1
代码:
#include "bits/stdc++.h" using namespace std; bool Prime[205], Used[205], Can; int n, Maps[15][15], sup; void Dfs(int Solved, int r, int c) { if (Solved >= sup) { Can = true; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (j > 0) putchar(' '); printf("%d",Maps[i][j]); } putchar('\n'); } return; } for (int i = 2; i <= sup; ++i) if (!Used[i] && !Can) { if (r > 0 && !Prime[Maps[r - 1][c] + i]) continue; if (c > 0 && !Prime[Maps[r][c - 1] + i]) continue; Used[i] = true; Maps[r][c] = i; if (c + 1 >= n) Dfs(Solved + 1, r + 1, 0); else Dfs(Solved + 1, r, c + 1); Used[i] = false; } } int main() { for (int i = 2; i < 205; ++i) Prime[i] = true; for (int i = 2; i < 205; ++i) if (Prime[i]) for (int k = i + i; k < 205; k += i) Prime[k] = false; Used[1] = Maps[0][0] = 1; scanf("%d", &n); sup = n * n; Dfs(1, 0, 1); if (!Can) puts("NO"); return 0; }
相关文章推荐
- ***的类型划分
- new一个二维数组
- 程序员有趣的面试智力题
- ubuntu分区
- 03-树1 树的同构
- C#的数据类型简介
- 螺旋矩阵
- 概率论与数量统计(二)2___ 随机事件与概率
- 服务器端如何开启GZIP压缩功能
- java程序的加载过程
- 欧氏距离的矩阵实现(k近邻分类器)
- CentOS 6.4安装图形界面并用VNC远程连接
- 双向链表
- 虚拟文件系统(VFS)
- 用Objective-C写了一个简单的批量更改文件名的程序
- Dijkstra TYVJ 1031热浪 Dijkstra测试数据
- POJ 2524 (并查集)
- 腾讯测试
- Dijkstra TYVJ 1031热浪 Dijkstra测试数据
- Sublime Text 3专题