QAQ
查看原帖
QAQ
1324175
__Function__楼主2024/7/23 10:07

本蒟蒻刚学了深搜,找了一道题做,错的一塌糊涂! QAQ

#include<bits/stdc++.h>
using namespace std;
const int MAX=23;
int a[MAX],k,n,c;bool vis[MAX];
int f(int s){
	for(int i=2;i<=sqrt(s);++i){
		if(s%i==0){
			return 0;
		}
	}
	return 1;
}
void dfs(int df,int sum){
	for(int i=df;i<=n;i++){
		if(df==n&&f(sum)==1){
			vis[sum]=1;
			return;
		}
		dfs(df+1,sum+a[df]);
	}
}
int main(){
	cin>>k>>n;
	for(int i=1;i<=k;i++) cin>>a[i];
	dfs(1,0);
	for(int i=1;i<=100000;i++)
	{
		if(vis[i]) c++;
	}
	cout<<c;
	return 0;
} 

特向大佬求解!

2024/7/23 10:07
加载中...