1 条题解
-
0
#include <iostream> #include <cmath> #define endl '\n' #define int long long using namespace std; int n,k; int arr[100]; int a[100]; bool st[100]; int res; bool judge(int x) { if(x<2) return false; if(x==2) return true; for(int i=2;i<=sqrt(x);i++) { if(x%i==0) return false; } return true; } void dfs(int x,int start) { if(x==k+1) { int sum=0; for(int i=1;i<x;i++) { sum+=arr[i]; } if(judge(sum)) res++; } else { for(int i=start+1;i<=n;i++) { if(!st[i]) { st[i]=1; arr[x]=a[i]; dfs(x+1,i); st[i]=0; } } } } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; } dfs(1,0); cout<<res<<endl; return 0; }
信息
- ID
- 2139
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者