一个16分的luogu.1036选数代码

学术版

@[chensj](/space/show?uid=104198) 就是一个裸的DFS。 具体怎么做有点忘了。 先发上我那丑陋的代码: ```cpp #include<cstdio> #include<cmath> #include<iostream> #include<cstring> #include<algorithm> //#define BR using namespace std; int p,q; int m[22]; int xx[22]; bool n[22]; int total=0; bool isprime(int d) { long long i; if(d<2)return false; if(d==2)return true; for(i=2; i<=sqrt(d); i++) if(d%i==0)return false; return true; } void print() { int dd=0; for(int i=0; i<q; i++) { dd+=m[i]; } if(isprime(dd)) { #ifdef BR cout<<dd<<endl; #endif total++; } } void dfs(int a,int step) { m[step]=xx[a]; if(step==q-1) { print(); return ; } n[a]=true; for(int i=a; i<p; i++) { if(n[i]) { continue; } dfs(i,step+1); } n[a]=false; } int main() { cin>>p>>q; for(int i=0; i<p; i++) { cin>>xx[i]; } for(int i=0; i<p-q+1; i++) { dfs(i,0); } cout<<total<<endl; return 0; } ```
by G_M_H @ 2019-05-25 09:11:18


@[chensj](/space/show?uid=104198) 你的判断质数的函数似乎不对。
by G_M_H @ 2019-05-25 09:14:34


@[G_M_H](/space/show?uid=130029) 为什么不对呢?我的同学说可以
by chensj @ 2019-05-25 14:24:33


@[chensj](/space/show?uid=104198) 如果我没搞错 你的判质数程序会将121当成质数 QAQ。
by G_M_H @ 2019-05-25 20:25:05


|