uva - 524 - Prime Ring Probl(素数环、回溯)
来源:互联网 发布:好听的傣族网络歌曲 编辑:程序博客网 时间:2024/05/22 09:06
题意:素数环。
方法:回溯,参见刘汝佳《算法入门经典》P127。
注意:有些n没有素数环,例如11。。刚开始以为程序除了问题,用了uva toolkit才知道的,数和数之间的空格,样例之间空行卡的很严,注意!
#include <iostream>#include <iomanip>#include <string>#include <cstring>#include <cstdio>#include <queue>#include <stack>#include <algorithm>#include <cmath>using namespace std;int isp[100], A[20], vis[20], n = 0;int is_prime(int n){int i = 0;for (i = 2; i <= sqrt(n); i++)if (0 == n % i)return 0;return 1;}void dfs(int cur){int i = 0, j = 0;if (cur == n && isp[A[0] + A[cur-1]]){for (i = 0; i < n; i++){if (i != n-1)cout << A[i] << " ";elsecout << A[i];}cout << endl;}else{for (i = 2; i <= n; i++){if (!vis[i] && isp[i+A[cur-1]]){vis[i] = 1;A[cur] = i;dfs(cur+1);vis[i] = 0;}}}}int main(){#ifdef Localfreopen("a.in", "r", stdin);freopen("a.out", "w", stdout);#endifint i = 0, t = 0;while(cin >> n){memset(A, 0, sizeof(A));memset(vis, 0, sizeof(vis));memset(isp, 0, sizeof(isp));if (t)cout << endl;cout << "Case " << ++t << ":" << endl;for (i = 2; i <= n*2; i++)isp[i] = is_prime(i);A[0] = 1;dfs(1);}}
1 0
- uva - 524 - Prime Ring Probl(素数环、回溯)
- UVA 524 素数环Prime Ring Problem (回溯法)
- UVa 524 - Prime Ring Problem(回溯)
- UVa 524:Prime Ring Problem(回溯)
- UVa 524 Prime Ring Problem (回溯)
- UVa 524 - Prime Ring Problem(回溯)
- Uva 524 Prime Ring (素数环)
- 素数环(Prime Ring Problem, Uva 524)
- UVA-524 Prime Ring Problem 素数环
- 素数环(Prime Ring Problem,UVa 524)
- UVa 524 Prime Ring Problem(素数环)
- Prime Ring Problem(UVA 524)(回溯法)
- UVA - 524 Prime Ring Problem (经典回溯问题)
- UVa 524 Prime Ring Problem(DFS , 回溯)
- hdoj problem 1016 Prime Ring Problem(素数环&&素数问题+DFS(回溯法))
- 例题7-4 素数环(Prime Ring Problem, UVa 524)
- DFS:Prime Ring Problem(素数环)
- UVA-524 素数环 回溯
- Codeforces #228 (Div. 2)C. Fox and Box Accumulation
- 1、Hello World
- 黑马程序员_16 IO流
- ClassLoader的工作原理
- 深夜乱作
- uva - 524 - Prime Ring Probl(素数环、回溯)
- [leet code] Subsets II
- Leetcode全树类问题
- 杂记
- 调整VMware虚拟机硬盘容量大小
- javascript实现二级省级联动
- Matlab中的符号计算
- 2014/2/3
- 计算机程序设计艺术 卷一 2