dfs,32分求助
查看原帖
dfs,32分求助
714508
PongFly楼主2022/7/15 13:22
#include<bits/stdc++.h>
using namespace std;
int a[120]= {0};
int b,k,sum;       //n,k
int cnt;
bool isPrime(int n) {
	if(n<2) return false;
	for(int i=2; i<=sqrt(n); i++) if(!n%i) return false;
	return true;
}
void dfs(int p) {
	if(k+1==p) {
		return;
	}
	for(int i=a[p-1]+1; i<=b; i++) {
		a[p]=i;
		for(int i=1; i<=k; i++) sum+=a[i];
		if(isPrime(sum)) cnt++;
		dfs(p+1);
	}
}
int main() {
	cin>>b>>k;
	for(int i=0; i<b; i++) cin>>a[i];
	dfs(1);
	cout<<cnt;
	return 0;
}
2022/7/15 13:22
加载中...