LAC一班1月30日C题题解

C 小信分蛋糕

题意:n个容器,每个可以存储1~m,一共最多存储k(可不存满),求几种存法(答案%=998244353)

范围及限制:时间:1s 空间:256M 对于100%的数据,1≤n,m≤50n≤k≤n×m

思路:深搜出所有可能,顺便统计一下

注意:一看到mod直接long long 完全很在怕的:P,然后就T掉辽,所以加f数组用来记忆化。

代码:

#include<bits/stdc++.h>
using namespace std;
long long n,m,k;
long long f[55][2505],mod=998244353;
long long dp(long long x,long long now){
    if(x>n){
        if(now<=k) return 1;
        return 0;
    }//边界 
    if(f[x][now]!=-1) return f[x][now];//记忆化 
    long long ans=0;
    for(long long i=1;i<=min(m,k-now);i++){
        ans+=dp(x+1,now+i);
        ans%=mod;
    }
    f[x][now]=ans%mod;
    return f[x][now];
}
int main(){
    memset(f,-1,sizeof(f));
    scanf("%d%d%d",&n,&m,&k);
    printf("%d",dp(1,0));
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值