2 条题解

  • 1
    @ 2021-8-8 1:33:20

    C++ :

    #include <iostream>
    using namespace std;
    int n,m;
    int a[101];
    int dp[101][10001];
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    		cin>>a[i];
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			if(a[i]==j)
    				dp[i][j] += 1;
    			if(j>=a[i])
    				dp[i][j]+=dp[i-1][j-a[i]];
    			dp[i][j]+=dp[i-1][j];
    		}
    	cout<<dp[n][m]<<endl;
    	return 0;
    }
    
    • 0
      @ 2026-3-27 15:59:42
      #include <bits/stdc++.h>
      using namespace std;
      const int N = 1e2 + 10;
      const int INF = 0x3f3f3f3f;
      const long long LLINF = 0x3f3f3f3f3f3f3f3fLL;
      int a[N], dp[N];
      int main(){
      	int n, m;
      	cin >> n >> m;
      	for(int i = 1 ; i <= n ; i++){
      		cin >> a[i];
      	}
      	dp[0] = 1;
      	for(int i = 1 ; i <= n ; i++){
      		for(int j = m ; j >= 1 ; j--){
      			if(j >= a[i]) dp[j] += dp[j - a[i]];
      		}
      	}
      	cout << dp[m] << endl;
      	return 0;
      } 
      
      • 1

      信息

      ID
      189
      时间
      1000ms
      内存
      128MiB
      难度
      7
      标签
      递交数
      317
      已通过
      73
      上传者