P1036
  • 板块灌水区
  • 楼主jiang_nian_qi
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/6 21:11
  • 上次更新2024/7/6 23:34:55
查看原帖
P1036
1224735
jiang_nian_qi楼主2024/7/6 21:11

这道题只过了两个点

#include<bits/stdc++.h>
using namespace std;
int n,k,a[21],ans=0;
bool is_prime(int x){
	if(x==1){
		return false;
	}
	for(int i=2;i*i<=n;i++){
		if(x%i==0){
			return false;
		}
	}
	return true;
}
void dfs(int t,int sum,int d){
	if(t==k){
		if(is_prime(sum)){
			ans++;
		}
		return;
	}else{
		for(int i=d;i<=n;i++){
			dfs(t+1,sum+a[i],i+1);
		}
	}
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	dfs(0,0,1);
	cout<<ans;
	return 0;
}
2024/7/6 21:11
加载中...