UVa524

#define Local

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-9
#define l()
/*
CNMD 再WA我代码我黑你服务器
fuck you Oj,if you jurage my code wrong answer again, i will hacker you server!
*/

using namespace std;

bool isPrime[33] = { false };
bool know[17];
int buff[17];//存数组下标
int n;


void dfs(int ptr) {
	if (ptr == n+1 && isPrime[buff[n] + buff[1]]) {
		for (int i = 1; i <= n-1; i++)
			cout << buff[i]<<" ";
		cout<> n) {
		for (int i = 2; i < 17; i++)
			know[i] = false;
		know[1] = true;
		buff[1] = 1;
		if (nag)
			cout << endl;
		nag = true;
		cout << "Case " << count++<<":" << endl;
		dfs(2);
	}


#ifdef Local
	system("pause");
#endif
}

感觉这题还能用无向图来写虽然复杂了点,但是是可行的。
然后用深搜实现路径查找。
这也许就是为什么用DFS(deep frist search)来命名的原因。

你可能感兴趣的:(算法,UVa,ACM题解)