日韩性视频-久久久蜜桃-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立体八数码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 老女人性生活视频 | 国产精品久久久久久久9999 | 日本网站在线看 | 欧美午夜在线 | 伊人色播 | av免费视屏 | 国产小视频自拍 | 日韩亚洲欧美一区二区 | 免费毛片软件 | 夜夜嗨av色一区二区不卡 | 亚洲区久久 | 天天操天天舔天天干 | 精品99久久久久成人网站免费 | 欧美一道本 | 少妇高潮一区二区三区99欧美 | 久在线视频 | 欧美裸体网站 | 中文字幕日韩三级 | 成人夜夜 | 国内成人自拍视频 | 成人aaa| 国产日韩欧美专区 | 香蕉影音 | 亚洲伦理久久 | 久久成人乱码欧美精品一区二区 | 一级久久久久久 | 日韩在观看线 | 人妻av无码一区二区三区 | 精品视频入口 | 午夜免费av | 99久久久国产精品免费蜜臀 | 亚洲成a人无码 | 亚洲影院av | 岛国av在线播放 | 在线视频观看你懂得 | 日韩精品人妻中文字幕有码 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 欧美黄色大片免费看 | 97人人干| 国产精品伦一区二区三区免费看 | 国产精品二区视频 | 精品久久人人妻人人做人人 | 熟妇一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 中文字幕乱码免费 | 免费av黄色 | 男人激烈吮乳吃奶爽文 | 痴女扩张宫交脱垂重口小说 | 一色桃子juy758在线播放 | 少妇久久久久久 | 91视频这里只有精品 | 污视频网站免费 | 欧美一卡二卡在线 | 国产女人18水真多18精品一级做 | 99在线观看免费视频 | 原来神马电影免费高清完整版动漫 | 中文字幕一区av | 日韩av成人在线观看 | 免费中文字幕av | 国产精品久久久久久人妻精品动漫 | 久久精品免费网站 | 窝窝午夜影院 | av资源吧首页 | 亚洲观看黄色网 | a视频在线 | 亚洲国产日韩一区无码精品久久久 | 麻豆国产一区二区三区四区 | 91大神视频在线播放 | 欧美在线激情视频 | 色综合国产| 午夜电影福利网 | 五月激情五月婷婷 | 一区二区三区美女 | 国产一区日韩 | 久久久久久亚洲av毛片大全 | 四虎在线观看 | 亚洲一区二区自拍偷拍 | 欧美精品乱人伦久久久久久 | 国产色频 | 免费av毛片 | 91成人福利视频 | 国产鲁鲁视频在线观看免费 | 中文字幕人妻精品一区 | 欧美成人黄色小说 | 日韩精品视频在线观看免费 | 精品综合 | 三级不卡| 黄色工厂这里只有精品 | 久久久久久久久久久综合 | 女人脱下裤子让男人捅 | 精品视频免费在线 | 女同性做爰全过程 | 亚洲欧美在线看 | 国产香蕉视频在线 | 精品久久久免费 | 成人在线免费播放 | 成人在线激情 | 国产精品99久久久久久宅男 | 一级黄色片免费播放 |