日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第一章:递推与递归 【完结】

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一章:递推与递归 【完结】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前,這一章都已經熟練掌握了。

目錄

  • 92. 遞歸實現指數型枚舉 【板子題】
  • 94. 遞歸實現排列型枚舉 【板子題】
  • 93. 遞歸實現組合型枚舉【板子題】
  • 717. 簡單斐波那契 【簡單 / 遞推】
  • 95. 費解的開關 【二進制枚舉 / 遞推】
  • 1208. 翻硬幣 【遞推】
  • 116. 飛行員兄弟 【二進制枚舉 】
  • 1209. 帶分數 【枚舉】

在用遞歸的時候可以先畫一個遞歸樹來分析。

92. 遞歸實現指數型枚舉 【板子題】


題目詳解

#include<bits/stdc++.h> using namespace std; int a[30],vis[30],n; void dfs(int index) {if(index==n){for(int i=0;i<n;i++) if(vis[i]==1) cout<<i+1<<" ";cout<<endl;return;}vis[index]=1;//選dfs(index+1);vis[index]=0;//不選dfs(index+1); } int main(void) {cin>>n;dfs(0);return 0; }

注意: 遞歸一定要恢復現場。

94. 遞歸實現排列型枚舉 【板子題】


題目詳解

#include<cstdio> #include<iostream> int state[10];//0代表還沒有選數,1~n代表放了哪個數 bool m[10];//true表示用過,false表示沒有用過 int n; void dfs(int u)//第幾個位置 {if(u==n){for(int i=0;i<n;i++){printf("%d ",state[i]);}printf("\n");return;}for(int i=1;i<=n;i++)//枚舉所有的數,看哪個可以選 {if(!m[i])//該數沒有被選 {m[i]=true;//狀態表示選了 state[u]=i;//選這該數 dfs(u+1);//開始選下一個位置 m[i]=false;//恢復現場 state[u]=0;//恢復現場 }} } int main(void) {scanf("%d",&n);dfs(0);return 0; }

可以用現有的函數實現全排列

#include<cstdio> #include<algorithm> using namespace std; int a[10]={1,2,3,4,5,6,7,8,9}; int main(void) {int n;scanf("%d",&n);do{for(int i=0;i<n;i++){printf("%d ",a[i]);}printf("\n");}while(next_permutation(a,a+n));return 0; }

93. 遞歸實現組合型枚舉【板子題】


題目詳解
代碼如下:

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int m,n; int ways[30]; void dfs(int u,int start)//u 代表當前是第幾位 start表示選的數從哪里開始遍歷 {if(u==m+1)//選夠了 {for(int i=1;i<=m;i++){printf("%d ",ways[i]);}puts("");//回車,這是一種比printf() 簡單的寫法return; }for(int i=start;i<=n;i++)//枚舉元素 {ways[u]=i;dfs(u+1,i+1);ways[u]=0;//恢復現場 } } int main(void) {cin>>n>>m;dfs(1,1);return 0; } #include<bits/stdc++.h> using namespace std; int a[30],vis[30],n,m; void dfs(int index,int start) {if(index==m){for(int i=0;i<m;i++) cout<<a[i]<<" ";cout<<endl;return;}for(int i=start;i<=n;i++){if(!vis[i]){a[index]=i;vis[i]=1;dfs(index+1,i);vis[i]=0;}} } int main(void) {cin>>n>>m;dfs(0,1);return 0; }

717. 簡單斐波那契 【簡單 / 遞推】

#include<bits/stdc++.h> using namespace std; const int N=1010; typedef long long int LL; LL a[N],n; int main(void) {cin>>n;a[1]=0,a[2]=1;for(int i=3;i<=n;i++) a[i]=a[i-1]+a[i-2];for(int i=1;i<=n;i++) cout<<a[i]<<" ";return 0; }

95. 費解的開關 【二進制枚舉 / 遞推】


題目詳解

#include<bits/stdc++.h> using namespace std; int a[30][30],b[30][30],n; int dx[5]={0,-1,0,1,0}; int dy[5]={0,0,1,0,-1}; void turn(int x,int y) {for(int i=0;i<5;i++){int tempx=x+dx[i];int tempy=y+dy[i];if(tempx>=0&&tempx<5&&tempy>=0&&tempy<5) b[tempx][tempy]^=1;} } int dfs() {int ans=10;for(int k=0;k<32;k++){int cnt=0;memcpy(b,a,sizeof b);for(int i=0;i<5;i++) if(k>>i&1) turn(0,i),cnt++;for(int i=1;i<5;i++)for(int j=0;j<5;j++) if(!b[i-1][j]) turn(i,j),cnt++;bool flag=true;for(int i=0;i<5;i++) if(!b[4][i]) flag=false; //判斷最后一排是不是都是亮的 if(flag) ans=min(ans,cnt);}if(ans>6) return -1;else return ans; } int main(void) {cin>>n;while(n--){string s[10];for(int i=0;i<5;i++) cin>>s[i];for(int i=0;i<5;i++)for(int j=0;j<5;j++)a[i][j]=s[i][j]-'0';cout<<dfs()<<endl;}return 0; }

1208. 翻硬幣 【遞推】


題目詳解

#include<bits/stdc++.h> using namespace std; string a,b; int main(void) {cin>>a>>b;int ans=0;for(int i=1;i<b.size();i++){if(b[i-1]!=a[i-1]){b[i-1]=a[i-1];if(b[i]=='*') b[i]='o';else b[i]='*';ans++;}}cout<<ans;return 0; }

116. 飛行員兄弟 【二進制枚舉 】


題目詳解

#include<bits/stdc++.h> using namespace std; typedef pair<int,int> PII; int a[10][10],b[10][10]; void turn(int x,int y) {for(int i=0;i<4;i++) b[x][i]^=1,b[i][y]^=1;b[x][y]^=1;//按了兩次得再按一次 } int main(void) {string s[10];for(int i=0;i<4;i++) cin>>s[i];for(int i=0;i<4;i++)for(int j=0;j<4;j++)if(s[i][j]=='+') a[i][j]=0;else a[i][j]=1;vector<PII> ans;for(int i=0;i<(1<<16);i++){vector<PII>temp;memcpy(b,a,sizeof a);for(int j=0;j<16;j++){if( (i>>j) & 1 ){turn(j/4,j%4);temp.push_back({j/4,j%4});}}bool flag=true;for(int j=0;j<4;j++)for(int k=0;k<4;k++)if(!b[j][k]) flag=false;if(flag && ( ans.size()>temp.size() || ans.empty() ) ) ans=temp;}cout<<ans.size()<<endl;for(auto op: ans) cout<<op.first+1<<" "<<op.second+1<<endl;return 0; }

1209. 帶分數 【枚舉】


詳細解析

#include<bits/stdc++.h> using namespace std; int a[10],ans; int get(int l,int r) {int sum=0;for(int i=l;i<=r;i++) sum=sum*10+a[i];return sum; } int main(void) {int n; cin>>n;for(int i=1;i<=9;i++) a[i]=i;do{for(int i=1;i<=7;i++){for(int j=i+1;j<=8;j++){int a=get(1,i);if(a>n) continue;int b=get(i+1,j);int c=get(j+1,9);if(b%c==0&&a+b/c==n) ans++;}}}while(next_permutation(a+1,a+10));cout<<ans;return 0; }

acwing會TLE 其它oj可以過

#pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; int n; string s="123456789"; int main(void) {cin>>n;int cnt=0;do{for(int i=1;i<=7;i++){int a=stoi(s.substr(0,i));if(a>n) continue;for(int j=1;j<=8-i;j++){int b=stoi(s.substr(i,j));int c=stoi(s.substr(i+j));if(b%c!=0) continue;else{if(a+b/c==n) cnt++;}}}}while(next_permutation(s.begin(),s.end()));printf("%d\n",cnt);return 0; }

總結

以上是生活随笔為你收集整理的第一章:递推与递归 【完结】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜视频在线瓜伦 | 一区二区成人在线 | 乱老熟女一区二区三区 | 久久免费视频播放 | 97人妻精品一区二区三区免费 | 999国产视频| av影视在线观看 | 国产精品嫩草69影院 | 人妖性做爰aaaa | 亚洲天堂欧美 | 黑人欧美一区二区三区 | 少妇精品一区 | 日本成人一区二区 | 亚洲欧美日韩精品久久 | 欧美粉嫩videosex极品 | 波多野结衣一区二区三区在线 | 午夜剧场免费在线观看 | 免费黄网在线观看 | 国产制服91一区二区三区制服 | 久久久久精彩视频 | 午夜污片 | 手机av在线免费观看 | 医生强烈淫药h调教小说视频 | 国产吃瓜在线 | 99国产精品国产精品九九 | 国产午夜精品无码 | 欧美一区二区黄色 | 二区三区在线观看 | 免费黄视频在线观看 | 看av免费毛片手机播放 | 精品一区二区三区视频 | 国产精品无码内射 | 日本国产一区 | 亚洲成人自拍视频 | 成人v精品蜜桃久一区 | 国产91精品露脸国语对白 | 爱乃なみ加勒比在线播放 | 欧美亚洲黄色 | 国产精品一区二区免费看 | www.youjizz.com视频 | 国产熟妇一区二区三区四区 | 亚洲免费在线视频 | 成人网一区 | 国产精品国产馆在线真实露脸 | 一区二区在线免费观看 | 香蕉视频免费在线播放 | 香蕉依人 | 美国黄色av | xxx性欧美| 日韩成人在线网站 | 国产高清精品软件丝瓜软件 | 一区二区三区日韩在线 | 在线欧美一区二区 | 播放灌醉水嫩大学生国内精品 | 99久久99久久精品国产片果冰 | 噜噜噜久久久 | 欧美综合自拍亚洲综合图片区 | 99久久久精品免费观看国产 | 拍摄av现场失控高潮数次 | 天天综合色网 | 欧美wwwwww| 成年丰满熟妇午夜免费视频 | 奴性白洁会所调教 | 国精产品一区一区三区mba下载 | 日日操日日摸 | 国产精品v | 日韩av手机在线观看 | 国产美女精品久久久 | 黄色网页在线播放 | 中文字幕 日韩有码 | 另类亚洲激情 | 四虎影院国产精品 | 日韩久久久精品 | 国产一区欧美日韩 | 日韩五码电影 | 国产二区自拍 | 精品一区二区毛片 | 国模吧一区二区三区 | 久久国产毛片 | 亚洲精品国产精品国自产观看 | 国产伦精品一区二区三区视频女 | 高h捆绑拘束调教小说 | japanese24hdxxxx中文字幕 | www.色人阁.com | 国产这里只有精品 | 久久精品色欲国产AV一区二区 | 亚洲妇女av | 草草影院最新网址 | 天天夜夜人人 | 污污视频在线免费观看 | 黄色在线播放视频 | 91成人在线观看喷潮蘑菇 | 波多野结衣中文字幕在线 | 新版红楼梦在线高清免费观看 | 91久久网 | 丝袜视频一区 | 在线观看视频你懂得 | 国产精品毛片在线 | 性的免费视频 |