P8725 [蓝桥杯 2020 省 AB3] 画中漂流

原题链接

题解

1.总共有t秒,每一秒不是上升就是下降
2.要在救援队赶来之前把体力全部花光

code

#include<bits/stdc++.h>
using namespace std;
int dp[3005][1505]={0};//代表第i秒使用j点体力的方案数
int main()
{
    int d,t,m;
    cin>>d>>t>>m;

    dp[0][0]=1;
    for(int i=1;i<=t;i++)
    {
        for(int j=min(i,m);j>=0;j--)
        {
            if((i-j)-j>=d)break;//如果掉下悬崖,方案数为零
            if(j)dp[i][j]+=dp[i-1][j-1];//如果能上升
            if(j<i)dp[i][j]+=dp[i-1][j];//如果能下降
            dp[i][j]%=1000000007;
        }
    }

    cout<<dp[t][m]<<endl;
    return 0;
}

posted @ 2024-02-15 20:02  纯粹的  阅读(27)  评论(0)    收藏  举报