当前位置: 首页 > news >正文

分析网站哪有那样的网站

分析网站,哪有那样的网站,网站开发实验的总结,做淘宝客网站服务器题目描述 如下面第一个图的九宫格中#xff0c;放着 1~8 的数字卡片#xff0c;还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动#xff0c;可以形成第二个图所示的局面。 我们把第一个图的局面记为#xff1a;12345678. 把第二个图的局面记…题目描述 如下面第一个图的九宫格中放着 1~8 的数字卡片还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动可以形成第二个图所示的局面。 我们把第一个图的局面记为12345678. 把第二个图的局面记为123.46758 显然是按从上到下从左到右的顺序记录数字空格记为句点。 本题目的任务是已知九宫的初态和终态求最少经过多少步的移动可以到达。如果无论多少步都无法到达则输出-1。 输入 输入第一行包含九宫的初态第二行包含九宫的终态。 输出 输出最少的步数如果不存在方案则输出-1。 样例输入 12345678. 123.46758 样例输出 3 普通的bfs超时了只能拿67分。 代码如下 #include iostream #include queue #include map using namespace std; int mp[4][4]; mapint, intvis; mapint, intst; //step int target 0; int row, col;int dx[] {0, 0, 1, -1}, dy[] {1, -1, 0, 0};bool move_can(int u, int d) {for (int i 2; i 0; i--)for (int j 2; j 0; j--) {mp[i][j] u % 10;u u / 10;if (mp[i][j] 0) {row i;col j;}}if ((d 0 col 2) || (d 1 col 0) || (d 2 row 2) || (d 3 row 0))return false;return true; }int move_to(int u, int d) {int xx row dx[d];int yy col dy[d];mp[row][col] mp[xx][yy];mp[xx][yy] 0;int tmp 0;for (int i 0; i 3; i)for (int j 0; j 3; j) {tmp tmp * 10 mp[i][j];}return tmp; }int bfs(int s) {queueintq;vis[s] 1;st[s] 0;q.push(s);while (q.size()) {int t q.front();q.pop();if (t target)return st[t];for (int i 0; i 4; i) {if (move_can(t, i)) {int v move_to(t, i);if (!vis[v]) {vis[v] 1;st[v] st[t] 1;q.push(v);}}}}return -1; }int main() {int state 0;for (int i 0; i 3; i)for (int j 0; j 3; j) {char c;cin c;if (c 1 c 8)mp[i][j] c - 0;elsemp[i][j] 0;state state * 10 mp[i][j];}for (int i 0; i 9; i) {char c;cin c;if (c 1 c 8)target target * 10 (c - 0);else {int tmp 0;target target * 10 tmp;}}cout bfs(state) endl;return 0; }然后我采用了双向bfs然后ac了 代码如下 #include iostream #include queue #include map using namespace std; char c; mapint, intvis; mapint, intdis; int mp[4][4];int dx[] {0, 0, 1, -1}, dy[] {1, -1, 0, 0}; int nx, ny; int ans;void fff1(int s) {int div 100000000;for (int i 0; i 3; i)for (int j 0; j 3; j) {mp[i][j] (s / div) % 10;if (mp[i][j] 0) {nx i;ny j;}div div / 10;} }int fff2() {int tmp 0;for (int i 0; i 3; i)for (int j 0; j 3; j) {tmp tmp * 10 mp[i][j];}return tmp; }int dbfs(int s, int e) {if (s e)return 0;queueintq1, q2;q1.push(s), q2.push(e);vis[s] 1, vis[e] 2;dis[s] 0, dis[e] 1;while (q1.size() q2.size()) {int t;bool flag;if (q1.size() q2.size()) {t q1.front();q1.pop();flag 1;} else {t q2.front();q2.pop();flag 0;}fff1(t);for (int i 0; i 4; i) {int xx nx dx[i], yy ny dy[i];if (xx 0 xx 3 yy 0 yy 3) {swap(mp[xx][yy], mp[nx][ny]);int v fff2();if (!dis.count(v)) {dis[v] dis[t] 1;vis[v] vis[t];if (flag)q1.push(v);elseq2.push(v);} else if (vis[v] vis[t] 3) {ans dis[v] dis[t];return ans;}swap(mp[xx][yy], mp[nx][ny]);}}}return -1; }int main() {int s 0;int e 0;for (int i 0; i 9; i) {cin c;if (c .)c 0;s s * 10 (c - 0);}for (int i 0; i 9; i) {cin c;if (c .)c 0;e e * 10 (c - 0);}cout dbfs(s, e) endl;return 0; }
http://www.zqtcl.cn/news/192820/

相关文章:

  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好
  • 免费自建网站工具网站建设公司那个好
  • wordpress集成环境搭建短视频优化
  • 做网站一般把宽度做多少中国企业报集团官网
  • 什么软件可以建网站网站建设应该计入什么费用
  • 网站制作 手机版重庆网站建设mswzjs
  • 网站建设犀牛云品牌建设方案和思路
  • 网络管理系统的管理软件抖音优化推广
  • 昆山市有没有做网站设计的交互设计研究生
  • 本地网站asp iiswordpress 感染支付宝
  • 成都最专业做网站的wordpress升级500
  • 做网站首页图的规格网站建设的市场分析
  • a032网站模版自己建立网站怎么建
  • wordpress.商品厦门做网站优化价格
  • 学校网站建设源码视频生成链接网站
  • 江苏建设工程招投标网站wordpress 全部tags
  • 十堰网站建设有哪些公司wordpress删除摘要
  • 网站的功能和特色网页设计公司哪个济南兴田德润实惠吗
  • 汕头建站模板泰安建设银行网站
  • 服装平台网站有哪些网站开发 零基础
  • 致设计网站官网建设购物网站需要多少费用
  • 网站后台程序河南政务网站建设排名