社区讨论

52分求条,悬关

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

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@micp87sg
此快照首次捕获于
2025/11/24 13:21
3 个月前
此快照最后确认于
2025/11/24 15:43
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a,b;
vector<int> k(200+78);
struct node
{
    int pos;
    int step;
};
vector<bool> visited(200+78,0);
void bfs()
{
    a--;
    b--;
    queue<node> q;
    q.push({a,0});
    //int ans = 0;
    while(!q.empty())
    {
        node x = q.front();
        visited[x.pos]=1;
        if(x.pos==b)
        {
            cout<<x.step;
            return;
        }
        q.pop();
        if(!visited[x.pos+k[x.pos]])
        {
            q.push({x.pos + k[x.pos], x.step + 1});
            visited[x.pos + k[x.pos]] = 1;
        }
        //q.push({x.pos + k[x.pos], x.step + 1});
        if(x.pos-k[x.pos]>=0 && !visited[x.pos - k[x.pos]])
        {
            q.push({x.pos - k[x.pos],x.step+1});
            visited[x.pos - k[x.pos]] = 1;
        }
    }
    return;
}
int main()
{
    cin>>n>>a>>b;
    
    for (int i = 0; i < n;i++)
    {
        cin >> k[i];
    }
    bfs();
    return 0;
}
记录:https://www.luogu.com.cn/record/249274709

回复

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

正在加载回复...