题目:https://www.luogu.com.cn/problem/P1135
solve1:dfs
#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 210;
int N, A, B;
int k[MAXN];
int ans = INF;
int book[MAXN];
void dfs(int now, int cnt)
{
if(now == B)
{
ans = min(ans, cnt);
return ;
}
if(cnt <= ans)//剪枝,如果当前次数cnt大于ans,那么这个cnt一定不是答案
{
book[now] = 1;
if(now + k[now] <= N && !book[now + k[now]]) dfs(now + k[now], cnt + 1);
if(now - k[now]