社区讨论
94分WA#7求调
P1135奇怪的电梯参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhjstj28
- 此快照首次捕获于
- 2025/11/04 07:56 4 个月前
- 此快照最后确认于
- 2025/11/04 07:56 4 个月前
代码如下,用的
CPP#include <bits/stdc++.h>
using namespace std;
int t[2009], m[2009];
int n, a, b;
int que[2009];
int qt[2009];
void bfs()
{
int tail = 1, head = 0;
t[a] = 1;
que[1] = a;
qt[1] = 0;
do
{
head++;
for(int i = 1; i <= 2; i++)
{
int nx;
if(i==1)
{
nx = que[head]+m[que[head]];
}
else if(i==2)
{
nx = que[head]-m[que[head]];
}
//cout << nx << " ";
if(nx<1||nx>n||t[nx]==1) continue;
tail++;
que[tail] = nx;
qt[tail] = qt[head] + 1;
t[nx] = 1;
if(nx == b)
{
cout << qt[tail];
return;
}
}
}while(head < tail);
cout << -1;
}
int main()
{
cin >> n >> a >> b;
for(int i = 1; i <= n; i++)
{
cin >> m[i];
}
bfs();
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...