您当前的位置: 首页 > 

*DDL_GzmBlog

暂无认证

  • 2浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Acwing 278 数字组合

*DDL_GzmBlog 发布时间:2021-04-02 18:02:28 ,浏览量:2

传送门

题目大意

给定 N 个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。

输入格式 第一行包含两个整数 N 和 M。

第二行包含 N 个整数,表示 A1,A2,…,AN。

输出格式 包含一个整数,表示可选方案数。

这不就是01背包吗? 分析一下: 集合划分: 前i个物品所有体积为j的集合 属性: 合法数量 状态计算: f[i][j] =选i的集合f[i-1][j-v]+不选i的集合f[i-1][j] 划到一维表示那么答案直接就除了来了:

#include 
using namespace std;
const int N = 1e4+10;
int n,m;
int f[N];
int main()
{
    cin>>n>>m;
    f[0] = 1;
    while(n -- )
    {
        int v;
        cin>>v;
        for(int i=m;i>=v;i -- )
        f[i]+=f[i-v];
    }
    cout            
关注
打赏
1657615554
查看更多评论
0.0411s