标签:mis form cas ring oid nbsp int ret blank
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 47217 Accepted Submission(s): 20859
#include <iostream> #include <cstring> using namespace std; bool prime[38] = { 0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1 }; bool vis[22]; int n, ring[22]; void ans() { cout << ring[0]; for (int i = 1; i < n; i++) { cout << ‘ ‘ << ring[i]; } cout << ‘\n‘; } void dfs(int pos) { if (pos == n &&prime[ring[n - 1] + ring[0]]) { ans(); return; } for (int i = 2; i <= n; i++) { if (!vis[i] && prime[i + ring[pos - 1]]) { vis[i] = true; ring[pos] = i; dfs(pos + 1); vis[i] = false; } } } int main() { int case_num = 1; ring[0] = 1; while (cin >> n) { memset(vis, false, sizeof(vis)); cout << "Case " << case_num << ":" << endl; case_num++; dfs(1); cout << endl; } return 0; }
HDOJ-1016 Prime Ring Problem【DFS】
标签:mis form cas ring oid nbsp int ret blank
原文地址:http://www.cnblogs.com/ray-coding-in-rays/p/6421047.html