华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: admin
打印 上一主题 下一主题

P1048 采药

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
11#
 楼主| 发表于 2019-10-15 20:14:56 | 只看该作者
标准的二维数组的DP
  1. #include<iostream>
  2. using namespace std;
  3. const int mm=110;
  4. const int mn=1100;
  5. int W,N;
  6. int w[mm],v[mm];
  7. int f[mn][mm];
  8. int i,j,k;
  9. int  main()
  10. {
  11.         cin>>W>>N;
  12.         for (i=1; i<=N; i++)  cin>>w[i]>>v[i];
  13.         for (k=1; k<=N; k++)
  14.                 for (int n=0; n<=W; n++)
  15.                         if (n<w[k])f[n][k]=f[n][k-1];
  16.                         else
  17.                                 f[n][k]=max(f[n][k-1],f[n-w[k]][k-1]+v[k]);
  18.         cout<<f[W][N];
  19.         return 0;
  20. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:26 , Processed in 0.093200 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表