1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 int ti[10005], val[10005], dp[10005]; 7 8 int main(){ 9 int t, m; 10 scanf("%d%d", &t, &m); 11 for(int i = 1; i <= m; i++) 12 scanf("%d%d", &ti[i], &val[i]); 13 for(int i = 1; i <= m; i++){ 14 for(int j = t; j >= 0; j--)//倒叙枚举{ 15 if(j >= ti[i])//比较时间是否可以 16 dp[j] = max(dp[j - ti[i]] + val[i], dp[j]);//动态转移方程 17 } 18 } 19 printf("%d\n", dp[t]); 20 return 0; 21 }
原文:https://www.cnblogs.com/New-ljx/p/11180325.html