题解:B4296 [蓝桥杯青少年组国赛 2022] 最少问题
一些闲话:
膜拜神犇 Hootime。\ 一道很好的贪心题,同时也是一道很好的搜索题。\ 可惜我用 DP。
思路:
令
AC 代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define min(a,b) (a<b?a:b)
int n,a[1005],dp[1005];
signed main(){
cin.tie(0),cout.tie(0);
cin >> n;
for(int i = 1;i <= n;++i) cin >> a[i];
for(int i = 2;i <= n;++i){
dp[i] = INT_MAX;
for(int j = 1;j < i;++j){
if(j + a[j] >= i) dp[i] = min(dp[i],dp[j] + 1);
}
}
cout << dp[n];
return 0;
}