当前位置: 首页 > news >正文

程序综合实践第二次递归与dfs

1、全排列问题

#include<bits/stdc++.h>
using namespace std;
int n;
int a[10];
bool b[10]={false};
void pailie(int t){if(t==n){for(int i=0;i<n;i++){if(i>0){cout<<" ";}cout<<a[i];}cout<<endl;return;}for(int j=1;j<=n;j++){if(b[j]==false){a[t]=j;b[j]=true;pailie(t+1);b[j]=false;}}
}
int main(){cin>>n;pailie(0);return 0;
}

2、组合的输出

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[30];
bool b[30]={false};
void pailie(int p,int s){if(p==m){for(int i=0;i<m;i++){if(i>0){cout<<" ";}cout<<a[i];}cout<<endl;return;}for(int j=s;j<=n;j++){if(b[j]==false){a[p]=j;b[j]=true;pailie(p+1,j+1);b[j]=false;}}
}
int main(){cin>>n>>m;pailie(0,1);return 0;
}

3、字母有重复安排

#include<bits/stdc++.h>
using namespace std;
int n;
char a[15];
void pailie(int p){if(p==n){for(int i=0;i<n;i++){cout<<a[i];}cout<<endl;return;}for(int i=0;i<n;i++){char c='A'+i;a[p]=c;pailie(p+1);}
}
int main(){cin>>n;pailie(0);return 0;
}

4、有重复元素的排列问题

#include<bits/stdc++.h>
using namespace std;
int n;
string s;
string cur;
bool b[500]={false};
int num=0;
void pailie(int p){if(p==n){cout<<cur<<endl;num++;return;}char c=0;for(int i=0;i<n;i++){if(!b[i]&&s[i]!=c){cur[p]=s[i];b[i]=true;c=s[i];pailie(p+1);b[i]=false;}}
}
int main(){cin>>n;cin>>s;sort(s.begin(),s.end());cur.resize(n);pailie(0);cout<<num<<endl;return 0;
}

5、 从前M个字母中取N个的无重复排列 [2*+]

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[15];
bool b[15]={false};
void pailie(int p){if(p==m){for(int i=0;i<m;i++){if(i>0){cout<<" ";}cout<<a[i];}cout<<endl;return;}for(int i=0;i<n;i++){if(!b[i]){a[p]='A'+i;b[i]=true;pailie(p+1);b[i]=false;}}
}
int main(){cin>>n>>m;pailie(0);return 0;
}

6、斐波那契数组

#include<bits/stdc++.h>
using namespace std;
const int MAXN=100000;
int main(){int n;int a[MAXN];cin>>n;for(int i=0;i<n;i++){cin>>a[i];}if(n<=2){cout<<0<<endl;return 0;}int min=10000;for(int i=0;i<n;i++){int x=a[i];int num=0;if(a[0]!=x){num++;}if(a[1]!=x){num++;}int a_1=x;int a_2=x;for(int k=2;k<n;k++){int sum=a_1+a_2;if(a[k]!=sum){num++;}a_2=a_1;a_1=sum;}if(num<min){min=num;}}cout<<min<<endl;return 0;
}

http://www.dtcms.com/a/423833.html

相关文章:

  • 半双工 vs 全双工:对讲机与电话的根本区别
  • 华茂达建设集团网站公司注册网上核名业务如何终止
  • 从虚拟背景到绿幕替换:人像分割功能在直播美颜sdk中的落地应用
  • 建设电影网站论文微信营销模式有哪些
  • Spring的配置(使用注解)
  • Codex CLI 配置 Azure OpenAI GPT-5-codex 指南
  • SAP与阿里巴巴战略合作升级:四大核心云解决方案落地阿里云
  • 用网站模板做新网站网络营销实训报告
  • Spring Ai Alibaba开发指南
  • 建立什么网站赚钱淘宝交易指数换算工具
  • Sirius 开源免费的漏扫工具
  • 网站可以做被告嘛wordpress 设置404
  • flink api-datastream api-transformation算子
  • 自己做的网站如何发布什么公司可以做网站等级保护
  • 怎么做网站自动响应新手做淘宝客网站教程
  • 深度解析ZStack Cloud v5.4.0 LTS 基础架构三大核心突破
  • markitdown,面向AI输入的文档转换工具
  • C4D储卡器底部塑料壳建模之内部结构详解
  • 泉州网站搭建统计局网站集约化建设方案
  • Hanlp 配置
  • 网站开发实例拍拍网站源码
  • 湖北省建设厅信息网站模板建设网站
  • 计算机网络4
  • 【硬科普】什么是克尔效应
  • Zemax:初学者的混合模式
  • 烟台小学网站建设怎么通过网站打广告
  • 广州途道信息科技有限公司:以创新与责任,铸就教育机器人领军品牌
  • 汇世界迎全运 广州国际社区运动嘉年华举行,BOSMA博冠现场展示并分享与科技全运的故事
  • 电子商务网站建设域名广州黄埔做网站
  • 基于单片机的盲人智能水杯(论文+源码)