hdu 1016
以前寫過的,再貼出來看看。。。
素數環問題
預處理+搜索
AC代碼:
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <string> #include <ctype.h> using namespace std; int out[30],n,flag[30]; bool pr[40]; int ss=0; void init() {pr[2]=pr[3]=pr[5]=pr[7]=pr[11]=pr[13]=pr[17]=pr[19]=pr[23]=pr[29]=pr[31]=pr[37]=true; } bool prime(int a) {for(int i=2;i*i<=a;i++)if(a%i==0)return true;return false; } void dfs(int x,int deep) {int i;if(deep==n){out[deep]=x;if(!prime(out[1]+out[n])){for(i=1;i<=n;i++)if(i==n) cout<<out[i];elsecout<<out[i]<<" ";cout<<endl;}}else{out[deep]=x;flag[x]=1;for(i=1;i<=n;i++)if(flag[i]==0&&pr[i+x])dfs(i,deep+1);flag[x]=0;} } int main() {memset(pr,false,sizeof(pr));init();while(cin>>n){cout<<"Case "<<++ss<<":\n";memset(flag,0,sizeof(flag));dfs(1,1);cout<<endl;}return 0;}轉載于:https://www.cnblogs.com/yefengCrazy/p/5636783.html
總結
- 上一篇: Eclips将lib打入war中
- 下一篇: 五大板块(5)——字符串