DFS暴搜33分求助
查看原帖
DFS暴搜33分求助
206834
_Herobrine_楼主2020/8/26 14:06
#include<bits/stdc++.h>
#define L long long
using namespace std;
L ans,n,k,a[21]={};
int pd(L x)
{
	if(x<2) return 0;
	for(L i=2;i*i<=x;i++) if(x%i==0) return 0;
	return 1;
}
void Search(int i,int x,L sum)
{
	if(x>k)
	{
		if(pd(sum)) ans++;
		return;
	}
	if(i>n) return;
	for(int j=0;j<=1;j++) Search(i+1,x+j,sum+a[i]*j);
}
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	Search(1,0,0);
	cout<<ans;
	return 0;
}

评测记录

2020/8/26 14:06
加载中...