dfs求调
  • 板块学术版
  • 楼主Ykmirror
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/20 20:04
  • 上次更新2023/10/24 03:28:58
查看原帖
dfs求调
557114
Ykmirror楼主2023/1/20 20:04

萌新学dfs一天 求大佬帮助

题目传送门

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=50009;
ll n,k,b[maxn]={},k2,ans=0,s_ans=0,o[maxn]={};
bool pd(ll k){
	if(k==2){
		return 1;
	}
	for(int i=2;i<=sqrt(k);i++){
		if(k%i==0){
			return 0;
		}
	}
	return 1;
}
void dfs(ll x){
	if(x==k){
		if(pd(s_ans)){
			ans++;
			return;
		}
		else{
			return;
		}
	}
	else{
		for(int i=1;i<=n;i++){
			if(o[i]==0){
				s_ans+=b[i];
				o[i]=1;
				cout<<i<<endl;
				dfs(x+1);
				s_ans-=b[i];
				o[i]=0;
			}
		}
	}
}
int main(){
	memset(o,0,sizeof(o));
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	dfs(1);
	cout<<ans;
	return 0;
}
2023/1/20 20:04
加载中...