救救孩子吧!
查看原帖
救救孩子吧!
338147
01bit楼主2020/8/27 11:09
#include<iostream>
using namespace std;
int n,k,x[20+1];
bool book[20+1]={};
bool prime(int num){
	if(num==0||num==1)return false;
	for(int i=2;i*i<=n;i++)
		if(num%i==0)return false;
	return true;
}
int dfs(int sum,int num,int start){
	int ans=0;
	if(num==0){
		if(prime(sum))return 1;
		return 0;
	}
	for(int i=start+1;i<=n;i++)
		if(!book[i]){
			book[i]=true;
			ans+=dfs(sum+x[i],num-1,i);
			book[i]=false;
		}
	return ans;
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>x[i];
	cout<<dfs(0,k,0);
	return 0;
}
2020/8/27 11:09
加载中...