题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1457
解题报告:在zoj第一次提交的时候竟然是TLE,让我很是费解,然后把判断素数的方法变成直接打表的方法 ,以为这样可以节省很多的时间,结果还是TLE(hdu上此时就可以Ac),后来试了一下数字19,结果很久都没有跑出结果,感觉应该是这的问题,我就把奇数与偶数分开,结果AC。(感觉杭电的数据弱爆了)
#include<cstdio> #include<cstring> #include<cmath> using namespace std; const int MAX =20+5; int vis[MAX],path[MAX],n; int Isprim[42] = {0,1,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,0,0,0,1}; void dfs(int cnt) { if(cnt<=n) { int num=path[cnt]; for(int i=2;i<=n;i++) { if(!vis[i]&&Isprim[i+num]) { path[cnt+1]=i; vis[i]=1; dfs(cnt+1); vis[i]=0; } } } if(cnt==n&&Isprim[path[1]+path[n]]) { for(int i=1;i<n;i++) printf("%d ",path[i]); printf("%d\n",path[n]); } } int main() { int ncase=0; while(scanf("%d",&n)!=EOF) { printf("Case %d:\n",++ncase); memset(vis,0,sizeof(vis)); path[1]=vis[1]=vis[0]=1; if(n%2 == 0)//不判段就是tle dfs(1); printf("\n"); } return 0; }
相关推荐
图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个...
其中有pku、hdu、zoj等各大oj的题目分类,pku的oj比较详细一点,按不同算法进行分类,均系从网上自行搜集的。
自动探测POJ、HDU、SOJ、ZOJ水题,对于有志于刷遍各种水题的ACMer来说非常有用
利用vjudge源码改造爬虫抓取vjudge全局共享答案资源。 ACMer,请用于参考思路,对拍代码,不要直接提交。
Largest prime factor Everybody knows any number can be combined by the prime number. Now, your task is telling me what position of the largest prime factor. The position of prime 2 is 1, prime 3 is 2,...
avr学习板,可以自己试着焊一块电路板,加深自己对avr的初步认识
HDU 1022 Train Problem I 附详细思路
搜索 dfs 解题代码 hdu1241
ACM比赛解题报告,包括hdu1880、zoj1010、zoj1015,为原创的报告,算法不一定最优的
八数码的A*算法~不是很高效,但是很适合刚刚学这个算法的朋友们
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
杭州电子科技大学OJ分类,很适合刚入门的新手哦,分类很详细,是不可多得的资料
HDU1059的代码
杭电ACMhdu1163
hdu1001解题报告
hdu 1574 passed sorce
HDU的一题........HDU DP动态规
hdu 1166线段树
Interview,ZOJ,POJ 等平台。 欢迎Coders对代码加以指正和提议! 常见问题总结 两整数求平均值 average = min + (max - min) / 2 防止两整数的和越界 整数乘积对比 1.0 * m * m == num 类似乘积对比, 需转为double...