用C++写代码完成任务本关任务:找出赢得给定 Snake and Ladder 棋盘游戏所需的最少投掷次数规则说明起始位置为0棋盘上的格子编号为1~n终点为n依据骰子的数字确定前移的步数如果恰好到达梯子的底部则自动前移至梯子顶部如果恰好遇到蛇的头部则自动回退至蛇的尾部。编程要求根据提示在右侧编辑器补充代码首先输入棋盘上的格子数量n然后输入蛇的数量s以及每一条蛇的首尾位置x和y接着输入梯子的数量t以
#include
const int MAXN = 10005; int n, s, t; int dis[MAXN]; bool vis[MAXN]; int snake[MAXN], ladder[MAXN];
void bfs() {
memset(dis, -1, sizeof(dis)); // 初始化距离为-1
memset(vis, false, sizeof(vis)); // 初始化访问标记为false
dis[0] = 0; // 起点距离为0
queue
int main() { cin >> n >> s; memset(snake, -1, sizeof(snake)); for (int i = 0; i < s; i++) { int x, y; cin >> x >> y; snake[x] = y; } cin >> t; memset(ladder, -1, sizeof(ladder)); for (int i = 0; i < t; i++) { int x, y; cin >> x >> y; ladder[x] = y; } bfs(); cout << dis[n] << endl; return 0; }
原文地址: https://www.cveoy.top/t/topic/bv6j 著作权归作者所有。请勿转载和采集!