2 条题解

  • 1
    @ 2025-9-18 20:05:43

    简简单单

    AC code

    #include<queue>
    #include<math.h>
    #include<stdio.h>
    #include<iostream>
    #include<vector>
    #include<iomanip>
    #include<string.h>
    #include<algorithm>
    #include<cmath>
    #include<cstdio>
    #include<utility>
    #include<cstring>
    #include<stack>
    #include<fstream>
    #include<string>
    using namespace std;
    #define LL long long
    const int INF = 0x3f3f3f3f;
    const int N = 12010;
    const int M = 2010;
    int n , m;
    int v[N] , w[N];
    int f[M];
    int main()
    {
    	cin >> n >> m;
    	int c = 0;
    	for ( int i = 1 ; i <= n ; i++ )
        {
    		int a , b , s;
    		cin >> a >> b >> s;
    		int k = 1;
    		while ( k <= s )
            {
    			c++;
    			v[c] = a * k;
    			w[c] = b * k;
    			s -= k;
    			k *= 2;
    		}
    		if ( s > 0 )
            {
    			c++;
    			v[c] = s * a;
    			w[c] = b * s;	
    		}
    		
        }
    	n = c;
    	for ( int i = 1 ; i <= n ; i++ )
        {
    	    for ( int j = m ; j >= v[i] ; j-- )
    	    {
                f[j] = max( f[j] , f[ j - v[i] ] + w[i] );
            }
        }
    	cout << f[m];
    	return 0;
    }
    

    😂😂😂

    信息

    ID
    3273
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    52
    已通过
    26
    上传者