67分球捞
查看原帖
67分球捞
1470994
langmouren楼主2024/12/4 19:57

有没有大佬帮忙捞一下,没看出来错哪里了

#include<bits/stdc++.h>
using namespace std;


int n,k;
int num[30],f[30],ans;

void ckn(){
	int sum=0;
	for(int i=1;i<=n;i++){
		sum+=f[i];
	}
	for(int i=2;i<sum;i++){
		if(sum%i==0){
			return;
		}
	}
	ans++;
	return;
}

bool chk(int a){//查询是否使用过 
	for(int i=1;i<=k;i++){
		if(f[i]>=a) return false;
	}
	return true;
}

void dfs(int dep){
	if(dep==k+1){
		ckn();
		return;
	}
	for(int i=1;i<=n;i++){
		if(chk(num[i])){
			f[dep]=num[i];
			dfs(dep+1);
			f[dep]=0;
		}
	}
}

int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>num[i];
	}
	dfs(1);
	cout<<ans<<endl;
	return 0;
} 
2024/12/4 19:57
加载中...