求调,玄关
查看原帖
求调,玄关
1403817
struct_楼主2024/12/15 14:07
#include <iostream>
#include <cstdio>
#pragma GCC optimize(2)
using namespace std;
int n,m,a[100001],A,B,b[100001],pos[100001],s[100001];
typedef long long ll;
int bfs(int x,int y,int h)
{
    b[n]=1;
    pos[0]=n;
    s[0]=0;
    while(B)
    {
        B--;
        int n1=pos[B];
        int ans=s[B];
        if (n1==A) 
		{
			return ans;
		}
        for(int i=-1; i<=1;i++)
        {
            int n3;
            if (i==0)
            {
                n3=n1+1;
            }
            else 
            {
				if(i==-1)
				{
					n3=n1-1;
				}
				else
			    {
			    	n3=n1*2;
			    }
            }
            if(n3>=1&&n3<=100000&&b[n3]==0)
            {
                b[n3]=1;
                pos[B]=n3;
                s[B]=ans+1;
            }
        }
    }
    return -1;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>A>>B;
    for(int i=1;i<=n;i++)
    {
		cin>>pos[i];
	}
    cout<<bfs(A,B,n)<<endl;
    return 0;
}
``
2024/12/15 14:07
加载中...