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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

啊哈,算法自学记——6th

發布時間:2024/3/24 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 啊哈,算法自学记——6th 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深度優先搜索

全排列問題:
理解深度優先搜索的關鍵在于:
解決當下該如何做,至于下一步該如何做則與當下該如何做是一樣的的操作。
深度優先搜索基本模型

void dfs(int step) {判斷邊界嘗試每一種可能for(int i=1;i<=n;i++){繼續下一步dfs(step+1);}return; } #include <stdio.h>int a[10],book[10],n;//C語言的全局變量在沒有賦值前默認為0,所以數組不用賦值了void dfs(int step)//step表示站在第幾個盒子面前 {int i;if(step==(n+1))//表示前面n 個盒子已經安排好了{//輸出一種排列,(1-n盒子中的撲克牌編號)for (int i = 1; i <= n; i++){printf("-%d",a[i]); }printf("\r\n");return;//返回之前一步,也即最近調用dfs函數的地方}//此時站在第step個盒子面前,應該放那張牌呢?//按照 1-2-3-4-----n的順序一一嘗試for (int i = 1; i <= n; i++){if(book[i]==0)//如果撲克i還在手上{//開始 常識使用撲克ia[step]=i;//將撲克i放入第step個盒子中book[i]=1;//表示撲克i已經不在手中//第step個盒子已經放好撲克牌,接下來需要走到下一個盒子面前dfs(step+1);//通過函數的遞歸調用來實現book[i]=0;//將剛才常識的撲克牌收回,才能進行下一次的常識}}return; }int main(int argc, char const *argv[]) {printf("Input a int num between 0-9:\r\n");scanf("%d",&n);dfs(1);//首先站到第一個盒子面前return 0; }

運行結果:

用深度優先搜索解決:口口口+口口口=口口口的問題
(填入1~9,每個只能用一次,使等式成立)

#include <stdio.h>/*解決abc+efg=hij的問題 *數字為1~9 */int n,a[10],book[10];//全局變量默認值為0void dfs(int step) {int i;if(step==10)//n 個數,此時說明前面的n 個數已經安排好了{if (((a[1]*100+a[2]*10+a[3])+(a[4]*100+a[5]*10+a[6]))==(a[7]*100+a[8]*10+a[9])){printf("%d%d%d+%d%d%d=%d%d%d\r\n",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);//打印已經安排好的排列n++;}return;}for(int i=1;i<=9;i++){if (book[i]==0)//說明牌還在手上 {a[step]=i;book[i]=1;dfs(step+1);book[i]=0;}}return; }int main(int argc, char const *argv[]) {dfs(1);printf("Total:%d\r\n",n/2);return 0; }

運行結果:

深度優先搜索,迷宮尋找小哈:


最開始在(1,1)只能向右走或者向下走,一個小哼只能向下走或者向右走,我們這里一個一個試,先讓小哼向右走,走不通的時候在想下走,這里我們規定走的方向為: 右、下、左、上

用深度優先搜索來解決:
dfs()函數解決的功能是,當前應該怎么辦,而當小哼在某個點的時候應該處理的是:先判斷是否已經到達小哈的位置,如果沒有到達則找到下一步的位置。

#include <stdio.h>int m,n,q,p,min=999999;int a[51][51],book[51][51];void dfs(int x,int y,int step) {int next[4][2]={//這里的x和y代表的是行和列,{0,1},//向右走**也即行不變,列+1{1,0},//向下走**列不變,行+1{0,-1},//向左走**行不變,列-1{-1,0}//向上走**行-1,列不變};int tx,ty,k;//判斷是否到達小哈的位置if(x==p && y==q){if(step<min)min=step;return;}//枚舉四種走法,方向為右、下、左、上for (k = 0; k <= 3; k++){//計算下一個點的坐標/*當k=0時,tx=x+0;ty=y+1;*當k=1時,tx=x+1;ty=y+0;*當k=2時,tx=x+0;ty=y-1;*當k=3時,tx=x-1;ty=y+0;*/tx=x+next[k][0];ty=y+next[k][1];//判斷是否越界if (tx<1||ty<1||tx>n||ty>m) {continue;//下面的代碼不執行,重新回歸繼續for循環}//判斷該點是否為障礙物或者已經在路徑之中if (a[tx][ty]==0 && book[tx][ty]==0)//如果該點,也就是計算出來的下一個點,既不是障礙物又不在已走過的路徑中{book[tx][ty]=1;//標記該點已經走過dfs(tx,ty,step+1);//開始嘗試下一個點,嘗試每一種可能book[tx][ty]=0;//嘗試結束, 取消這個點的標記} }return; }int main(int argc, char const *argv[]) {int i,j,startx,starty;//讀入迷宮的行和列,n為行,m為列printf("Input the map size:\r\n");scanf("%d %d",&n,&m);//讀取迷宮for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%d",&a[i][j]);//二維數組a用來保存地圖}}//讀入迷宮的起點和終點printf("Input the start and the ending:\r\n");scanf("%d %d %d %d",&startx,&starty,&p,&q);//從起點開始搜索 book[startx][starty]=1;//標記起點已經在路徑中,防止重復走----二維數組book用來存儲已經走過的點dfs(startx,starty,0);//從起點開始,走過的路程為0printf("The min length is: %d\r\n",min);return 0; }

運行結果:

總結

以上是生活随笔為你收集整理的啊哈,算法自学记——6th的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线免费观看黄色网址 | 亚洲成熟少妇 | 欧美生活一级片 | 免费观看黄色一级视频 | 天天插天天狠 | 国产成人精品在线视频 | 每日在线观看av | 日本一区二区三区在线播放 | 免费a网 | 精品国产黄色 | 日韩国产欧美一区 | 亚洲图片一区二区三区 | 欧美激情一区二区三级高清视频 | www.黄色国产| 亚洲欧洲综合网 | 亚洲最大成人在线视频 | 乳罩脱了喂男人吃奶视频 | 久久中文一区 | 日韩影院一区 | 黑人和白人做爰 | 亚洲精品国产日韩 | 国产欧美精品一区 | 人妻熟女一区二区aⅴ水 | 午夜激情视频在线播放 | 欧美综合第一页 | 91视频影院 | 青草久久久| 精品国产18久久久久久 | 日日干日日射 | 欧美亚洲91 | 欧美精品99久久 | 男女性生活毛片 | 天天操天天干天天 | 成人免费毛片嘿嘿连载视频 | 伊人春色在线视频 | 一级片久久久久 | 精品国产免费看 | 亚洲精品久久久 | 日韩特级黄色片 | 国产黄免费 | 美国黄色一级大片 | 黄色成人影视 | 国产亚州av | 成人深夜小视频 | 国产黄频在线观看 | 国产精品久久久久久久免费看 | 干干操操 | 国产精品男人的天堂 | 91高跟黑色丝袜呻吟在线观看 | 激情综合五月 | 黄片一区二区 | 亚洲国产精品二区 | 亚洲夜夜爽 | av资源新版在线天堂 | 国产精品久久影院 | 国产精品伦子伦 | 亚洲精品1234| 麻豆视频成人 | 波多野结衣视频网站 | 福利一区二区在线观看 | 国产乱子伦精品 | 伊人999| 精品久久久久久一区二区里番 | 欧美性猛交xxx乱久交 | 91福利视频在线 | 78日本xxxxxxxxx59| 亚洲91av | 成熟丰满熟妇高潮xxxxx视频 | www亚洲天堂 | 欧美噜噜噜| 国产三级视频网站 | 成人午夜av在线 | 人人爽人人爽人人爽 | 色牛影院| 日韩在线一二三区 | 91a视频| 色插综合 | 深夜福利在线播放 | 久久久久久亚洲av无码专区 | 久久国产一级 | 日韩成人在线影院 | 日韩视频免费观看高清 | 亚洲激情a | 日韩精品短片 | 日韩mv欧美mv国产网站 | 伊人av综合| 亚洲一二三av| 杨幂毛片午夜性生毛片 | 999在线观看视频 | 亚洲成人免费在线视频 | 91影音| 肌肉猛男裸体gay网站免费 | 国产三级视频 | 国产裸体网站 | 在线观看网站av | 男女午夜免费视频 | 成人在线高清 | 男女插孔视频 | 国产熟女一区二区三区五月婷 |