acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 官方题解

    题目大意 有 999 个点 mmm 条边的无向图,其中有 888 个数字放置在不同点上,有一个没有数字的点,可以通过移动将数字移动到相邻没有数字的点上,求最终将数字 1∼81\sim 81∼8 分别放在顶点 1∼81\sim 81∼8 上的最少操作次数。 解题思路 我们可以将 999 个顶点上所存放的数字用字符串表示状态,例如 254806137 表示顶点 111 存放数字 222 ,顶点 222 存放数字 555 ,依此类推,特殊地,数字 000 表示该点为空。那么终点就可以用 123456780 表示。 由于每次移动都会从一种状态变为另一种状态,我们不妨将每种状态看作一个结点,那么所有状态以及状态与状态之间的变换就可以形成一张无向图,于是我们只需要在图上用 bfsbfsbfs 跑最短路即可。由于结点是以字符串表示的,所以可以使用 map 存储从起点状态到达所有状态结点的最短路径长度。 参考代码

    userId_undefined
    NoonMaple
    7月全勤卷王题解仙人出道萌新时空双修者快乐小狗传道者
    19阅读
    0回复
    3点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页