题解:01背包

划水(dp
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 5000
using namespace std;

int n,m,c[maxn],w[maxn],f[maxn*3];

int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d%d",&c[i],&w[i]);
    for(int i=1;i<=n;i++)
     for(int j=m;j>=c[i];j--)
      f[j]=max(f[j],f[j-c[i]]+w[i]);
    printf("%d\n",f[m]);
    return 0;
}
AC

相关文章:

  • 2020-04-22
  • 2022-01-12
  • 2021-08-05
  • 2021-10-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-06
  • 2021-10-13
  • 2022-12-23
  • 2021-10-31
相关资源
相似解决方案