为什么会MLE~~~蒟蒻求助
查看原帖
为什么会MLE~~~蒟蒻求助
938873
wl_16楼主2023/4/1 15:24
#include<iostream>
#include<cmath>
#include<map>
using namespace std;
int s[25],ans,n,k;
map<int,bool> b;
bool p(int n){
	for(int i=2;i<sqrt(n);i++){
		if(n%i==0) return 1;
	}
	return 0;
}
void dfs(int m,int now,int c){
	if((c==n&&m<k)) return;
	else if(m==k&&b[now]!=1){
		if(p(now)==1) return;
		ans++;
		b[now]=1;
		return;
	}
	else{
		dfs(m,now,c+1);
		dfs(m+1,now+s[c],c+1);
	}
}
int main(){
    cin>>n>>k;
    for(int i=0;i<n;i++) cin>>s[i];
    dfs(0,0,0);
    cout<<ans;
    return 0;
}

数组也没开多大吧

2023/4/1 15:24
加载中...