HELP! 大神们, 我这份代码只有80分啊,搞了1个多小时!!!【QWQ】
查看原帖
HELP! 大神们, 我这份代码只有80分啊,搞了1个多小时!!!【QWQ】
657502
Wangfeiyang楼主2023/7/31 18:07
#include<bits/stdc++.h>
using namespace std;
const long long N = 1005;
struct node{ long long x, step; }q[N * N], pre[N * N];
long long v[N];
long long f, r;
long long n, down, out;
int main(){
	cin >> n >> down >> out;
	for(int i = 1; i <= n; i ++)  cin >> v[i];
	if(down == out){
		cout << 0 << endl;
		return 0;
	}
	q[r ++] =  node{down, 0};
	while( f <= r){
		node tmp = q[f ++];
		for(int i = 1; i <= 2; i ++){
			if(i == 1){
				long long t1 = tmp.x + v[tmp.x];
				if(t1 >= 1 && t1 <= n){
					if(t1 == out){
						cout << tmp.step + 1 << endl;
						return 0;
					} else q[r ++] = node{t1, tmp.step + 1};
				}
			}
			if(i == 2){
				long long t2 = tmp.x - v[tmp.x];
				if(t2 >= 1 && t2 <= n){
					if(t2 == out){
						cout << tmp.step + 1 << endl;
						return 0;
					} else q[r ++] = node{t2, tmp.step + 1};
				}
			}
		}
	}
	cout << -1 << endl;
	return 0;
}
/*

80 1 80
1 1 3 1 1 3 1 1 2 2 1 2 1 3 1 1 3 2 3 1 3 3 3 1 1 1 2 1 3 1 2 1 3 1 3 3 2 3 3 1 1 1 2 1 2 1 3 2 3 3 2 1 3 2 3 2 3 1 3 1 1 3 2 3 2 2 3 3 2 1 3 3 3 3 1 1 3 3 2 0

这个样例没过,但不知道为什么【QWQ】
*/
2023/7/31 18:07
加载中...