社区讨论
52分求调,错的全是TLE
P1135奇怪的电梯参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m09obt91
- 此快照首次捕获于
- 2024/08/25 22:37 去年
- 此快照最后确认于
- 2025/11/04 22:26 4 个月前
不知道为啥,错的测试点全部用时超过1秒,对的测试点全部用时不到五毫秒,是不是死循环
CPP#include<iostream>
using namespace std;
int c[201],b,min1=1000,lou[201],a,n;
void dfs(int dc,int cs){
if(b==dc){//判断是否到达
if(cs<min1){
min1=cs;
}
return;
}
if(lou[dc]==1)//如果已经搜查过就不用再去了,以免造成超时
return;
if(dc-c[dc]>0){//检查合法性,避免数组越界
lou[dc]=1;
dfs(dc-c[dc],cs+1);
lou[dc]=0;
}
if(dc+c[dc]<=n){//同理
lou[dc]=1;
dfs(dc+c[dc],cs+1);
lou[dc]=0;
}
return;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>c[i];
}
dfs(a,0);
if(min1==1000)
cout<<-1;
else
cout<<min1;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...