9 条题解

  • 0
    @ 2025-6-22 20:05:20
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1e5 + 10;
    int t,m,w[N],c[N],dp[N][2000];
    int main(){
    	cin >> t >> m;
    	for(int i = 1;i <= m;i++){
    		cin >> w[i] >> c[i];
    	}
    	for(int i = 1;i <= m;i++){
    		for(int j = 1;j <= t;j++){
    			if(w[i] > j){
    				dp[i][j] = dp[i - 1][j];
    			}else{
    				dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - w[i]] + c[i]);
    			}
    		}
    	}
    	cout << dp[m][t];
    	return 0;
    }
    

    信息

    ID
    678
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    435
    已通过
    158
    上传者