Floyd 94分求调
查看原帖
Floyd 94分求调
1205369
qinzixu楼主2024/8/6 17:16
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
int n,s,e;
int a[1000][1000];
signed main()
{
	cin>>n>>s>>e;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	{
		a[i][j]=1e8+10;
		if(i==j)a[i][j]=0;
	}
	for(int i=1;i<+n;i++)
	{
		int x;
		cin>>x;
		if(i+x<=n)a[i][i+x]=1;
		if(i-x>0)a[i][i-x]=1;
	}
	for(int k=1;k<=n;k++)
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
	if(a[s][e]==1e8+10)cout<<-1;
	else cout<<a[s][e];
	return 0;
}
2024/8/6 17:16
加载中...