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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

UVA - 1604Cubic Eight-Puzzle立体八数码

發布時間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVA - 1604Cubic Eight-Puzzle立体八数码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:有8個立方體,按相同顏色著色,相對面是相同顏色,按同一方向擺成3*3的方陣。問從初始狀態到目標狀態最少移動步數。

分析:題目是最短路徑題,可以bfs可以回溯,用回溯加剪枝。不能走的格子是上次走的空格。

# include<iostream> # include<cstdio> # include<cmath> # include<map> # include<queue> # include<cstring> #include<set> # include<algorithm> using namespace std;struct node {int top, front; }; int goal[3][3]; node start[3][3]; int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,1,-1 }; int step = 31; int judge() {int t = 0;for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (start[i][j].top != goal[i][j])t++;}}return t; } void move(int x,int y,int i) {int ddx = x + dx[i]; int ddy = y + dy[i];if (i == 0 || i == 1) {swap(start[x][y].front, start[x][y].top);}else {start[x][y].top = 1 ^ 2 ^ 3 ^ start[x][y].front^start[x][y].top;}swap(start[x][y], start[ddx][ddy]); } void dfs(int curx,int cury,int layer) {if (layer > 30)return;int jp = judge();if (jp==0) {step = min(step, layer);return;}if (jp + layer > step)return;//剪枝int tx, ty;for(int i=0;i<3;i++)for(int j=0;j<3;j++)if (!start[i][j].top) {tx = i; ty = j; break;}for (int i = 0; i < 4; i++) {int ddx = tx + dx[i];int ddy = ty + dy[i];if (ddx >= 0 && ddx < 3 && ddy>=0 && ddy < 3 && (ddx != curx || ddy != cury)) {move(ddx, ddy, i ^ 1);dfs(tx, ty, layer + 1);move(tx, ty, i);}} } int main() {int ex, ey;char k;//0-empty,1-red,2-blue,3-whitewhile (cin >> ey >> ex && ex&&ey) {ex--; ey--;step = 31;for (int i = 0; i < 3; i++)for (int j = 0; j < 3; j++) {cin >> k;if (k == 'E')goal[i][j] = 0;else if (k == 'W')goal[i][j] = 3;else if (k == 'R')goal[i][j] = 1;else if (k == 'B')goal[i][j] = 2;if (ex == i && ey == j) {start[i][j].front = 0; start[i][j].top = 0;}else {start[i][j].front = 1; start[i][j].top = 3;}}dfs(-1, -1, 0);step = step > 30 ? -1 : step;cout << step << endl;}return 0; }

?

總結

以上是生活随笔為你收集整理的UVA - 1604Cubic Eight-Puzzle立体八数码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日日操狠狠干 | 污黄视频在线观看 | 国产一区二区三区在线观看 | 性xxx法国hd极品 | aaa级片 | 青青一区二区 | 久久久精品在线观看 | 色a在线 | 大陆一级黄色片 | 少妇一晚三次一区二区三区 | 91高清无打码 | 亚洲色偷偷色噜噜狠狠99网 | 亚洲另类视频 | 不卡中文 | 99视频一区| 日本成人免费在线视频 | 成人免费视频久久 | 中文人妻熟女乱又乱精品 | 久久综合九色综合欧美狠狠 | 91看毛片| 99国产精品久久久 | 亚洲色精品三区二区一区 | 亚洲国产私拍精品国模在线观看 | 成人毛片a | 在线观看黄色av网站 | 日老女人视频 | 爱爱视频免费看 | 毛片在线网址 | 日韩在线观看免费av | 国产福利精品在线观看 | 免费一级片视频 | 韩国美女主播跳舞 | 最近最新mv字幕观看 | 日韩 欧美 亚洲 国产 | 久久超碰av | 任你操精品| 日日夜夜影院 | 亚洲午夜福利在线观看 | 丰满少妇麻豆av苏语棠 | 男女视频免费观看 | 日韩国产欧美一区 | 色婷婷亚洲一区二区三区 | 少妇又紧又爽视频 | 亚洲av无码一区二区乱子伦as | 深夜天堂 | 2025中文字幕 | 九七影院在线观看免费观看电视 | 黄色av免费| www.蜜臀 | 久草香蕉在线 | 亚洲AV成人无码精品久久盆瓶 | 国产色啪 | 成人国产精品 | 韩日精品在线 | 麻豆com| 做爰无遮挡三级 | 色拍拍视频 | 在线a天堂| 黄色片在线免费观看 | 国产精品日韩一区二区 | 中国国产精品 | 国产精品国产一区 | 性开放视频 | 黄色视屏在线免费观看 | 香蕉av一区 | 日本中文字幕精品 | 亚洲男人第一网站 | 男生插女生的网站 | 日韩高清成人 | 久久久88| 日日操天天射 | 三级在线国产 | 麻豆三级在线观看 | 欧美日韩精品一区二区 | 很黄的网站在线观看 | 欧美人妖老妇 | 99国产精品视频免费观看一公开 | 精品欧美一区二区三区免费观看 | 国产福利免费在线观看 | 香蕉黄视频 | www.99色| 国产免费午夜 | 丝袜在线一区 | 狠狠干老司机 | 草草草av | 桃色激情网 | 午夜视频免费 | 屁屁影院一区二区三区 | 国产精品一区网站 | 天天狠天天干 | 男女福利视频 | 污视频在线 | 免费看日批 | 成人欧美日韩 | 国产精品久久久久久久久免费软件 | 国产精品传媒视频 | 欧美一区二区三区婷婷月色 | 韩日精品在线观看 | av直播在线观看 |