82pts求助
查看原帖
82pts求助
1054686
XuOuXiao1024楼主2024/5/19 09:27
#include<bits/stdc++.h>
using namespace std;
const int BUFSIZE=1<<20;
char ibuf[BUFSIZE],*is=ibuf,*it=ibuf;
char getc(){
    if(is==it)
        it=(is=ibuf)+fread(ibuf,1,BUFSIZE,stdin);
    return is==it?EOF:*is++;
}
long long reads(){
    long long ret=0;
    bool sign=0;
    char ch=getc();
    while(!isdigit(ch)){
        sign|=ch=='-';
        ch=getc();
    }
    while(isdigit(ch)){
        ret=ret*10+ch-'0';
        ch=getc();
    }
    return sign?-ret:ret;
}
long long n,m,a[105],dp[105];
int main(){
    n=reads(),m=reads();
    for(int i=1;i<=n;i++) a[i]=reads();
    dp[0]=1;
    for(int i=1;i<=n;i++){
        for(int j=m;j>=a[i];j--){
            dp[j]+=dp[j-a[i]];
        }
    }
    cout<<dp[m];
    return 0;
}

https://www.luogu.com.cn/record/159498086

2024/5/19 09:27
加载中...