AcWing 278. 数字组合

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

输入格式

第一行包含两个整数 N 和 M

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

输出格式

包含一个整数,表示可选方案数。

数据范围

1N100,
1M10000,
1Ai1000,
答案保证在 int 范围内。

输入样例:

4 4
1 1 2 2

输出样例:

3

状态分析:

代码实现:

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e4+5;
int dp[N];
int main(){
    int n,m;
    cin>>n>>m;
    dp[0]=1;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        for(int j=m;j>=x;j--)dp[j]=max(dp[j],dp[j]+dp[j-x]);
    }
    cout<<dp[m]<<endl;
    return 0;
}

 

posted @   回忆、少年  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示