数组计数

数组计数_第1张图片
数组计数_第2张图片

思路:

数组计数_第3张图片
我在代码中把2维的数组f换成了2个1维的数组

#include
#define ll long long
using namespace std;
const ll MOD=998244353;
ll n,k,f[1000005],s[1000005];
int main()
{
 scanf("%lld%lld",&n,&k);
 if(k==2)
 {
  printf("%lld\n",n/2);
  return 0;
 }
 for(int i=0;i<=n;i++)
   s[i]=1;
 for(int i=1;i<=k;i++)
 {
  for(int j=1;j<=n;j++)
    f[j]=s[j>>1];
  s[0]=0;
  for(int j=1;j<=n;j++)
    s[j]=(s[j-1]+f[j])%MOD;
 }
 printf("%lld\n",f[n]);
 return 0;
}

来源:zr

你可能感兴趣的:(zr,A)