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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

九宫重排

發(fā)布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 九宫重排 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

描寫敘述

如以下第一個圖的九宮格中,放著 1~8 的數(shù)字卡片,另一個格子空著。與空格子相鄰的格子中的卡片能夠移動到空格中。經(jīng)過若干次移動。能夠形成第二個圖所看到的的局面。我們把第一個圖的局面記為:12345678.把第二個圖的局面記為:123.46758顯然是按從上到下。從左到右的順序記錄數(shù)字,空格記為句點。本題目的任務(wù)是已知九宮的初態(tài)和終態(tài),求最少經(jīng)過多少步的移動能夠到達。假設(shè)不管多少步都無法到達,則輸出-1。


?

輸入

 輸入第一行包括九宮的初態(tài),第二行包括九宮的終態(tài)。

輸出

 輸出最少的步數(shù),假設(shè)不存在方案,則輸出-1。

例子輸入

12345678.
123.46758

例子輸出

3

#include <iostream> #include <cstring> #include <cstdio> #include <queue> using namespace std; char str1[20];///終態(tài) int jc[10] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};///1到10的階乘 int dir[] = {0, 1, 0, -1, 0};///方向 bool f[1000000]; struct node {char str[10];//當然狀態(tài)int step;//步數(shù)int loc;//空格位置 }; int fun(char str[])//狀態(tài)匹配 {for (int i = 0; i < 9; i++) {if (str[i] != str1[i])return false;}return true; } int por(string a)//康托展開 {int size = 0;for (int i = 0; i < 9; i++) {int len = 0;for (int j = i + 1; j < 9; j++) {if (a[i] > a[j])len++;}size += len * jc[8 - i];}return size; } int bfs(node x) {queue<node>q;q.push(x);while (!q.empty()) {node a = q.front();q.pop();for (int i = 0; i < 4; i++) {//四個方向// cout<<a.str<<endl;node b = a;int ax = b.loc / 3 + dir[i];int ay = b.loc % 3 + dir[i + 1];if (ax < 0 || ax >= 3 || ay < 0 || ay >= 3)continue;b.str[b.loc] = b.str[ax * 3 + ay];//位置交換b.str[ax * 3 + ay] = '9';b.loc = ax * 3 + ay;b.step ++;int index = por(b.str);if (!f[index]) {if (fun(b.str)) {return b.step;}f[index] = true;q.push(b);}}}return -1; } int main() {node a;while (cin >> a.str >> str1) {memset(f, 0, sizeof(f));for (int i = 0; i < 9; i++){if (a.str[i] == '.') {a.str[i] = 9; a.loc = i; a.step = 0;}if(str1[i]=='.')str1[i]='9';}cout << bfs(a) << endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的九宫重排的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜寂寞自拍 | 久久精品3 | 天天操夜夜操 | 日韩免费观看 | 福利社91| 3d动漫精品啪啪一区二区下载 | 男女交性视频播放 | 国产91成人 | 日韩精彩视频 | 日本熟女一区二区 | 你懂的日韩 | 喷潮在线观看 | 日日爱669 | 三上悠亚在线观看一区二区 | 夜夜嗨aⅴ一区二区三区 | 色婷视频 | 亚洲成人免费在线视频 | 亚洲视频二区 | 亚洲成人777 | 色女孩综合 | 国产乱码精品一区二区三区中文 | 日韩欧美中文字幕一区二区三区 | 无码人妻丰满熟妇奶水区码 | 黑人巨大精品欧美一区二区免费 | a一级黄色片 | 成人免费观看网址 | 制服丝袜av一区二区三区下载 | 91青青操 | 男人天堂色 | 欧美一二三区视频 | 成人国产精品久久久 | 国产精品51麻豆cm传媒 | 中文人妻一区二区三区 | 亚洲天堂国产精品 | 欧美视频在线一区二区三区 | 欧美1314 | 永久在线| 精品少妇一区二区三区免费观 | www.蜜臀av| 黑森林福利视频导航 | 免费观看h片| 国产丝袜一区二区三区 | 日韩精品v | 久免费一级suv好看的国产 | 欧美一区二区福利视频 | 欧美性潮喷xxxxx免费视频看 | 特黄一区| 激情视频免费观看 | 国产精品自产拍在线观看 | 美女网站全黄 | 毛片小视频 | 日韩精品视频播放 | av片在线观看网站 | yy6080久久| 毛片在哪看 | 日av在线播放 | 日本在线一 | 后进极品美女圆润翘臀 | 吞精囗交69激情欧美 | 99福利视频| 午夜天堂在线观看 | 日韩精品免费一区二区夜夜嗨 | 最新成人在线 | 成人午夜免费视频 | xx69欧美 | 亚洲国产精品久久久久婷蜜芽 | 无人在线观看的免费高清视频 | 欧美成人午夜视频 | 久久影院中文字幕 | 欧美精品入口蜜桃 | www.在线观看网站 | 亚洲成在线| 日本一区二区网站 | 欧美美女视频 | 亚洲国产成人综合 | 欧美 日韩 国产 激情 | 欧美日韩在线视频免费播放 | 亚洲午夜久久 | av午夜天堂 | 国产一区二区在线免费观看视频 | 亚洲永久无码精品一区二区 | 国产91精品久久久久久久 | 久久精品欧美一区二区三区麻豆 | 天天色天 | 波多野结衣在线播放视频 | 亚洲系列在线观看 | 久久久国产打桩机 | 亚洲欧美日韩一区在线观看 | 精品国产精品国产偷麻豆 | 亚洲精品国产成人 | 污片在线观看 | 热精品| 国产黄色一级网站 | 黑丝久久 | 五月婷婷免费视频 | 日本特级毛片 | 在线看你懂得 | 狠狠干狠狠操 | 椎名由奈在线观看 |