这题把我搞蒙了 ???
查看原帖
这题把我搞蒙了 ???
311502
逸之为一楼主2021/8/21 16:15

这题我写了一会~~ 于是我兴冲冲的提交,得了80分,其他的超时,于是我看了半天,还记算了复杂度,感觉没问题呀!可就是80分,于是我的鼠标颤颤的指向了查看题解 于是我看了别家的代码,感觉一个思路,都加了剪枝的呀!为什么 !!!??

本是同根生!!!为何你满分??

于是我把目光看向了讨论群里NB的大佬!帮帮我把!

代码:

#include<bits/stdc++.h>
using namespace std;
const int INT =1 , INF = 0, maxs=1010,MAX=0x7ffffff;
int N,A,B;
int S[maxs];
int ANS=MAX;
bool VIS[maxs];
void dfs(int X,int SUM){
	if(X==B) ANS=min(ANS,SUM);
	if(SUM > MAX) return;
	VIS[X]=INT;
	int X1=X-S[X],X2=X+S[X];
	if(X1>=INT && VIS[X1]==INF) dfs(X1,SUM+1);
	if(X2<=N && VIS[X2]==INF) dfs(X2,SUM+1);  
	VIS[X]=INF;
}int main(){
	scanf("%d %d %d",&N,&A,&B);
	for(int i=1;i<=N;i++) scanf("%d",&S[i]);
	VIS[A]=INT;
	dfs(A,INF);
	if(ANS==MAX) printf("-1\n");
	else printf("%d\n",ANS);
	return 0;
} 
2021/8/21 16:15
加载中...