#include<bits/stdc++.h>usingnamespace std;constint N =1010;int dp[N];int v[N], w[N];// 所占体积和对应价值int t, m;intmain(){ios::sync_with_stdio(0);cin.tie(0);cin >> t >> m;for(int i =1; i <= m; i++){cin >> v[i]>> w[i];}for(int i =1; i <= m; i++){// 代表m件草药for(int j = t; j >= v[i]; j--){dp[j]=max(dp[j], dp[j - v[i]]+ w[i]);}}cout << dp[t];return0;}
机器人饲养指南
#include<bits/stdc++.h>usingnamespace std;constint N =10010;int dp[N], v[101], w[101];//表示吃N个苹果能获得的最大快乐值,v表示某快乐值所对应的容量(苹果数),w表示快乐值int n, m;intmain(){ios::sync_with_stdio(0);cin.tie(0);cin >> n >> m;// 苹果总数和投喂量for(int i =1; i <= m; i++){cin >> w[i];v[i]= i;}for(int i =1; i <= m; i++){for(int j = v[i]; j <= n; j++){dp[j]=max(dp[j], dp[j - v[i]]+ w[i]);}}cout << dp[n];return0;}