洛谷:P1048 采药(dp,简单的背包问题,普及-)

题目:在这里插入图片描述

分析:最基础的背包问题。等号那个又差点错,当然可以等啦!

代码:

#include<bits/stdc++.h>
using namespace std;
long long A[1001][101];
int main()
{
 memset(A,0,sizeof(A));
 int m,n;
 cin>>m>>n;
 int B[n+1][2];
 for(int i=1;i<=n;i++)
 {
  cin>>B[i][0]>>B[i][1];
 }
 for(int i=1;i<=m;i++)
 {
  for(int j=1;j<=n;j++)
  {
   A[i][j]=A[i][j-1];
   if(i>=B[j][0]) A[i][j]=max(A[i][j-1],A[i-B[j][0]][j-1]+B[j][1]);
  }
 }
 cout<<A[m][n];
}

猜你喜欢

转载自blog.csdn.net/weixin_42721412/article/details/107521369