小W与书架
小W与书架

我们设定dp[i][0/1]表示当前放了厚度为i的书,最后一本是白色还是黑色。那我们就可以推出dp[i][0]=dp[i1][1]dp[i][0]=dp[i-1][1]dp[i][1]=dp[i1][0]+dp[ih][0]dp[i][1]=dp[i-1][0]+dp[i-h][0]
答案就显而易见喽
不过代码是真的短

#include<bits/stdc++.h>
#define mod 998244353 
using namespace std;
int l,h;
long long f[1000005][2],ans;
int main()
{
 scanf("%d%d",&l,&h);
 f[0][0]=1;
 for(int i=1;i<=l;i++)
 {
  f[i][0]=f[i-1][1];
  f[i][1]=f[i-1][0];
  if(i>=h) 
   (f[i][1]+=f[i-h][0])%=mod;
  (ans+=f[i][1])%=mod;
 }
 printf("%lld",ans);
}

来源:zr

相关文章:

  • 2021-12-15
  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
  • 2021-06-21
  • 2022-02-15
  • 2021-08-16
猜你喜欢
  • 2021-04-14
  • 2021-12-28
  • 2021-06-24
  • 2021-05-13
  • 2021-10-17
  • 2021-07-06
  • 2021-10-08
相关资源
相似解决方案