新学dfs的蒟蒻求助
查看原帖
新学dfs的蒟蒻求助
358794
Xfer_splendor楼主2021/6/3 18:31

蒟蒻求助 样例过不了

#include<iostream>
#include<cmath>
using namespace std;
int f[5000001],a[5000001],sum,n,k;
bool pd(int n){
	if (n<2){
		return false;
	}
	else{
		for (int i=2;i<=sqrt(n);++i){
			if (n%i==0){
				return false;
			}
		}
	}
	return true;
}
void dfs(int cur,int ans){
	if (cur==k){
		if (pd(ans)){
			sum++;
		}
		return ;
	}
	else {
		for (int i=1;i<=n;++i){
			if (!f[i]){
				f[i]=1;
				dfs(cur+1,ans+a[i]);
				f[i]=0;
			}
		}
	}
}
int main(){
	cin>>n>>k;
	for (int i=1;i<=n;++i){
		cin>>a[i];
	}
	dfs(1,0);
	cout<<sum;
	return 0;
}
2021/6/3 18:31
加载中...