1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> #include<cmath> using namespace std; int n,r,a[110],b[110],ans; bool v[110]; bool pd(int x) { if(x<=1) return false; int tt=int(sqrt(double(x)+1.0)); for(int i=2;i<=tt;i++) { if( x%i==0) { return false; } } return true; } void dfs(int k) { int i; if(k==r+1) { int ss=0; for(i=1;i<=r;i++) ss+= b[a[i]]; if( pd(ss)==true) ans++; } else { for(i=a[k-1]+1;i<=n;i++) if( v[i]) { v[i]=0; a[k]=i; dfs(k+1); v[i]=1; } } } int main() { scanf("%d%d",&n,&r); for(int i=1;i<=n;i++) scanf("%d",&b[i]); memset(v,1,sizeof(v)); a[0]=0;ans=0; dfs(1); printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 2599
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者