CSP认证201604-4游戏[C++题解]:bfs、拆点、迷宫问题加强版、三维数组
生活随笔
收集整理的这篇文章主要介绍了
CSP认证201604-4游戏[C++题解]:bfs、拆点、迷宫问题加强版、三维数组
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- 题目解答
- 题目链接
题目解答
来源:acwing
分析:这题和普通的bfs求走迷宫问题很像,走迷宫告诉哪些点不能走,是永远不能走,这样bfs的时候很容易处理。本题是这些障碍点在某段时间内不能走,这就给初学者带来了问题,这些变化的障碍点怎么处理呢?
其实,这里用到的技巧是拆点,这里的含义是多考虑一维,即时间。在a,b这段时间内阻碍的话,就标记为true,表示这段时间内不能走。
while(T --){int x, y, a, b;cin >> x >> y >> a >> b;for(int i = a; i <= b; i ++)// 从a到b时刻不能走,标记为trueg[x][y][i] = true;}加上这样的处理之后,就可以按照普通的bfs来搜了。
AC代码
题目链接
https://www.acwing.com/problem/content/3233/
总结
以上是生活随笔为你收集整理的CSP认证201604-4游戏[C++题解]:bfs、拆点、迷宫问题加强版、三维数组的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: CSP认证201604-3路径解析[C+
- 下一篇: CSP认证201609-1最大波动[C+