AcWing 280. 数字组合-求方案数dp
原题链接
简单
作者:
沁_2
,
2025-01-16 17:20:01
,
所有人可见
,
阅读 1
// Problem: 数字组合
// Contest: AcWing
// URL: https://www.acwing.com/problem/content/280/
// Memory Limit: 64 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define x first
#define y second
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define rrep(i,a,b) for(ll i=a;i>=b;i--)
#define db double
#define pll pair<ll,ll>
const ll N=1e6+10;
//f表示组合数 i 的方案数
ll f[N];
void sol(){
ll n,m;cin>>n>>m;
f[0]=1;
rep(i,1,n){
ll x;cin>>x;
rrep(j,m,x){
//数 j 可以从数 j-x 通过加上 x 得到
f[j]+=f[j-x];
}
}
cout<<f[m];
}
int main(){
ios;
ll t=1;
//cin>>t;
while(t--)
sol();
return 0;
}