33分求助
查看原帖
33分求助
1056375
XIAO_HUANG_coding楼主2023/8/3 20:42
#include<bits/stdc++.h>
using namespace std;
int n,k,a[25];
bool used[25]; 
set<int>s;
void addPrime(long long n)
{
	if(n == 1)return;
	if(n == 2){s.insert(n);return;}
	for(int i = 2;i*i <= n;i ++)
		if(n%i == 0)return;
	s.insert(n);
}
void dfs(int dep,long long sum)
{
	if(dep == k){addPrime(sum);return;}
	for(int i = 0;i < n;i ++)
		if(!used[i])
		{
			used[i] = true;
			dfs(dep+1,sum+a[i]);
			used[i] = false;
		}
	
	
}
int main()
{
	cin >> n >> k;
	for(int i = 0;i < n;i ++)
		cin >> a[i];
		
	dfs(0,0);
	cout << s.size();
	return 0;
}

有哪位大佬能看看是哪里错了,第一次做深搜的题T_T

2023/8/3 20:42
加载中...