【01背包DP练习】洛谷 P1048采药 P1060开心的金明

洛谷 P1048采药

https://www.luogu.com.cn/problem/P1048

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <map>
#include <set>
#include <stack>
#include <vector>
typedef long long LL;
typedef std::pair<int ,int> PP;
const int N = 105;
int tm[N],va[N],dp[1005];
int tt,m;

int main()
{
   std::cin >> tt >> m;
   memset(dp,0,sizeof(dp));
   for(int i=1; i<=m; i++) std::cin >> tm[i] >> va[i];
   for(int i=1; i<=m; i++){
      for(int j=tt; j>=tm[i]; j--){
         dp[j] = std::max(dp[j],dp[j-tm[i]]+va[i]);
      }
   }
   std::cout << dp[tt];
   return 0;
}


洛谷 P1060 开心的金明

https://www.luogu.com.cn/problem/P1060

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <map>
#include <set>
#include <stack>
#include <vector>
typedef long long LL;
typedef std::pair<int ,int> PP;
const int N = 105,M = 30005;
int va[N],we[N],dp[M];
int tt,m;

int main()
{
   std::cin >> tt >> m;
   for(int i=0; i<m; i++){
      std::cin >> va[i] >> we[i];
   }
   for(int i=0; i<m; i++){
      for(int j=tt; j>=va[i]; j--){
         dp[j] = std::max(dp[j], dp[j-va[i]]+va[i]*we[i]);
      }
   }
   std::cout << dp[tt];
   return 0;
}

上一篇:UNIX环境高级编程C1(更)


下一篇:Echarts通过Ajax实现动态数据加载