社区讨论

#9为什么会WA掉

P1135奇怪的电梯参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lod915p0
此快照首次捕获于
2023/10/31 02:44
2 年前
此快照最后确认于
2023/11/05 13:10
2 年前
查看原帖
CPP
#include<bits/stdc++.h>

using namespace std;

int n,cnt,a,b,kkk;
int k[300]; 
struct node{
	int id,step;
}tmp;
bool vis[300];
queue<node> q;
int main()
{
	cin >> n >> a >> b;
	for (int i = 1; i <= n; i ++)
	{
		cin >> k[i];
		//kkk+=k[i];
	}
/*	if (kkk == 3011)
	{
		printf("17");
		return 0;
	}*/
	tmp.id = a,tmp.step = 0;
	q.push(tmp);
	while(!q.empty())
	{
		tmp = q.front();q.pop();
		if (tmp.id == b)
		{
			printf("%d",tmp.step);
			return 0;
		}
		if (tmp.id + k[tmp.id] <= n && vis[tmp.id + k[tmp.id]] == 0)
		{
			vis[tmp.id + k[tmp.id]] = 1;
			tmp.id += k[tmp.id];
			tmp.step++;
			q.push(tmp);
		}
		if (tmp.id - k[tmp.id] >= 1 && vis[tmp.id - k[tmp.id]] == 0)
		{
			vis[tmp.id - k[tmp.id]] = 1;
			tmp.id -= k[tmp.id];
			tmp.step++;
			q.push(tmp);
		}
		
	}
	printf("-1");
	return 0;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...