这个是题干:https://www.luogu.org/problemnew/show/P1052#sub
这是一道NOIP2005年的提高组的题,那道题一看,就是要用动态规划,状态转移方程也十分简单。只需要考虑是从哪个地方来的,看看即将到达的点是否有石子。用一维数组 f[x] 表示第X位的步数(额,这只是30分的写法,L 的取值太大,数组承受不了)
之后,我又想骗一点分,就特判了一下s==t的情况,结果竟然又过了一个点,简直就是玄学。。。
#include<iostream>
#include<cstring>
using namespace std;
const int maxN=20000100;
int l,s,t,m,ans,f[maxN],b[110];
bool a[maxN];
void prepare()
{
memset(f,-1,sizeof(f));
f[0]=0;
for(int i=s;i<=l+t-1;++i){
for(int j=s;j<=min(t,i);++j){
if(f[i-j]==-1)
continue;
if(f[