大佬们,有个小问题,如果这里用多重背包来求,怎么求种类数
查看原帖
大佬们,有个小问题,如果这里用多重背包来求,怎么求种类数
1215295
discretely楼主2024/7/25 02:51

就是说,只能用一次,怎么求种类数?

    int n,m;cin>>n>>m;
    int now=0;
    while(n--){
        int x;cin>>x;
        for(int i=1;i<=x;i<<1){
            w[++now]=i;x-=i;
        }
        if(x) w[++now]=x;
    }
    //f[0]=1;
    // for(int i=1;i<=now;++i){
    //     for(int j=m;j>=w[i];--j){
    //         f[j]+=f[j-w[i]];
    //     }
    // }
    // cout<<f[m]<<endl;
2024/7/25 02:51
加载中...