脚本宝典收集整理的这篇文章主要介绍了c++ 深搜,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <bits/stdc++.h>
using namespace std;
int n,a[10];
void dfs(int t){
if(t==n){
for(int i=0;i<n;i++) cout << a[i];
cout << endl;
return;
}
a[t]=0;
dfs(t+1);
a[t]=1;
dfs(t+1);
}
int main(){
cin >> n;
dfs(0);
return 0;
}
3
000
001
010
011
100
101
110
111
#include <bits/stdc++.h>
using namespace std;
int n,a[10],b[10];
void dfs(int t){
if(t==n){
for(int i=0;i<n;i++) cout << a[i];
cout << endl;
return;
}
for(int i=1;i<=n;i++){
if(b[i]==0){
a[t]=i;
b[i]=1;
dfs(t+1);
b[i]=0;
}
}
}
int main(){
cin >> n;
dfs(0);
return 0;
}
3
123
132
213
231
312
321
#include <bits/stdc++.h>
using namespace std;
const int N=25;
int n,k,a[N],b[N],ans,s;
bool p(int x){
if(x<2) return 0;
for(int i=2;i*i<=x;i++){
if(x%i==0) return 0;
}
return 1;
}
void dfs(int t, int m){
if(t==n){
if(k==m){
s=0;
for(int i=0;i<n;i++){
if(b[i]) s+=a[i];
}
if(p(s)) ans++;
}
return;
}
b[t]=0;
dfs(t+1, m);
b[t]=1;
dfs(t+1, m+1);
}
int main(){
cin >> n >> k;
for(int i=0;i<n;i++){
cin >> a[i];
}
dfs(0, 0);
cout << ans;
return 0;
}
以上是脚本宝典为你收集整理的c++ 深搜全部内容,希望文章能够帮你解决c++ 深搜所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。