Toggle navigation
C语言网
教程
博客
团队
训练
训练
题库
题集
状态
排名
比赛
比赛
标准
自主
考试
网课
AI助手
AI助手
代码解释
语言转换
编程助手
liugua
私信TA
用户名:liugua
访问量:881
签 名:
等 级
P3
排 名
25572
经 验
537
参赛次数
0
文章发表
6
年 龄
0
在职情况
学生
学 校
青岛科技大学
专 业
自我简介:
TA的其他文章
蓝桥杯历届试题-九宫重排 c++
浏览:
126
蓝桥杯2013年第四届真题-买不到的数目
浏览:
91
蓝桥杯2013年第四届真题-危险系数 dfs遍历邻接表
浏览:
236
你可能喜欢
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)
浏览:
881
剪刀石头布 (Java代码)
浏览:
940
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)
浏览:
782
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)
浏览:
729
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)
浏览:
528
蓝桥杯历届试题-九宫重排 c++
作者:
liugua
发表时间:2021-08-01 14:45:17
浏览:126 | 评论:0
原题链接:
蓝桥杯历届试题-九宫重排
``` #include
using namespace std; int fx[4][2] = { {0,-1},{-1,0},{0,1},{1,0} }; string start; string ed; unordered_map
d; int bfs(string start) { queue
q; q.push(start); d[start] = 0; while(!q.empty()) { string t = q.front(); q.pop(); if( t == ed ) return d[t]; int k = t.find('.'); int x = k / 3; int y = k % 3; int dis = d[t]; for(int i=0;i<4;i++) { int dx = x + fx[i][0]; int dy = y + fx[i][1]; if(dx >= 0 && dx < 3 && dy >= 0 && dy < 3) { swap(t[k],t[dx * 3 + dy]); if(!d.count(t)) { d[t] = dis + 1; q.push(t); } swap(t[k],t[dx * 3 + dy]); } } } return -1; } int main() { char c1 ,c2; for(int i=0;i<9;i++) { cin>>c1; start += c1; } for(int i=0;i<9;i++) { cin>>c2; ed += c2; } cout<
0.0分
0 人评分
分享
收藏
bfs
C语言网推出会员服务,提供C/C++/算法/Python等多套视频学练课程+源码资源社群答疑+私活推荐等资源,享受丰富的技术学习到变现的乐趣,
以含金量和学习效果勇敢挑战同类辅导
! 点击了解开通
评论区
«
»
提交
精彩推荐
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)
浏览:
570
printf基础练习2 (C语言代码)
浏览:
567
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)
浏览:
956
C语言训练-大、小写问题 (C语言代码)
浏览:
611
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)
浏览:
817
模拟计算器 (C++代码)
浏览:
800
1392题解(大数相加)
浏览:
601
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)
浏览:
1218
A+B for Input-Output Practice (V) (C语言代码)
浏览:
702
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言描述——不利用数组,直接接收数据并判断等级。快来体验一下吧(*^__^*) 嘻嘻……)
浏览:
563
有问题
,
问问AI
代码解释
语言转换
编程助手