1 条题解

  • 0
    @ 2024-11-3 11:57:07
    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    int main(){
        ll  n,m;
        cin>>n>>m;
        vector<ll>cc(n,0);
        for(ll i=0;i<n;i++){
        	cin>>cc[i];       //  相当于物品的价值 
    	}
    	// 定义 dp[j] 为组成面值为j的货币总方案数
    	vector<ll> dp(m+1,0);
    	dp[0]= 1;   //组成面值为0的货币方案数为 1 ,就是:什么也不需要
    	
    	for(ll i=0;i<n;i++){	
    		for(ll j=cc[i];j<=m;j++){
    			dp[j]=dp[j] + dp[j-cc[i]];
    		}
    	}
    	cout<<dp[m];
    	return 0;
    }
    
    
    
    • 1

    信息

    ID
    424
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    43
    已通过
    11
    上传者