HDU 1016 - Prime Ring Problem [简单DFS]
2015-03-17 23:16
267 查看
不想说这题有多么水了,最简单的DFS题了,但是!我花了N天在杭电用G++交了20多遍一直超时,最后改C++交过了!!
这是什么情况!!无语了!!
这是什么情况!!无语了!!
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <cstring> #include <cstdlib> const int maxn = 1024; bool checked[maxn] = { 1, 1 }; int pri[maxn], tot = 0; int n, res[22], kase = 0, vis[22]; void init(){ for (int i = 2; i < maxn; ++i){ if (!checked[i]) pri[tot++] = i; for (int j = 0; j < tot && pri[j] * i < maxn; ++j){ checked[pri[j] * i] = 1; if (!(i % pri[j])) break; } } } void DFS(const int d){ if (d == n){ if (!checked[1 + res[d - 1]]){ for (int i = 0; i < n; ++i) printf("%d%c", res[i], i == n - 1 ? '\n' : ' '); } return; } for (int i = 2; i <= n; ++i){ if (!vis[i] && !checked[i + res[d - 1]]){ vis[i] = 1; res[d] = i; DFS(d + 1); vis[i] = 0; } } } int main(){ init(); while (~scanf("%d", &n)) { printf("Case %d:\n", ++kase); memset(vis, 0, sizeof(vis)); res[0] = 1; vis[1] = 1; DFS(1); printf("\n"); } return 0; }
相关文章推荐
- HDU 1016 Prime Ring Problem 简单DFS
- HDU 1016 - Prime Ring Problem [简单DFS]
- HDU 1016 超简单DFS
- hdu 1016 prime ring 简单dfs输出
- hdu 1016 很水的dfs
- hdu 1016 dfs(素数环)
- hdu 2660 简单 dfs
- Hdu1312 Red and Black 【简单dfs】
- hdu 1016(一道经典的dfs)
- [HDU-1016] 无优化DFS
- hdu 2212 dfs 简单的思维问题
- hdu 2660 Accepted Necklace(简单DFS)
- HDU 1010题解这是一道简单的DFS加回溯题,看懂后就会对递归和回溯有较深刻的理解。
- Hdu-1016 Prime Ring Problem【DFS】
- HDU 1016--DFS第一炮
- [HDU-1016] 链表优化的DFS
- HDU 1016 Prime Ring Problem(DFS)
- HDU 1016 不一样的DFS
- Prime Ring Problem hdu 1016 dfs
- HDU 1016 Prime Ring Problem(DFS)