大佬,9分求助
查看原帖
大佬,9分求助
794178
2023chencheng楼主2023/3/26 19:24
#include <bits/stdc++.h>
using namespace std;
int dp[10005],a[1005],ans;
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d",a+i);
    for(int i=1;i<=m;i++)dp[i]=-2147483648;
    for(int i=1;i<=n;i++){
        for(int j=m;j>=a[i];j--)
            dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
        for(int j=0;j<=m;j++)if(dp[j]==m)ans++;
    }
    printf("%d\n",ans);
    return 0;
}
2023/3/26 19:24
加载中...