可爱迷人的香穗子(NDK1351)

24 篇文章 0 订阅
可爱迷人的香穗子


Time Limit:10000MS  Memory Limit:65536K
Total Submit:14 Accepted:11 


Description 


香穗子正准备参加一个晚会!现在她准备好好打扮一下,她准备戴上耳环,手镯,项链..等等一些装饰品,这里要说明的是,香穗子不是花瓶…. 
香穗子最多能承受W的重量,每个装饰品也有各自的重量和美观值 
现在香穗子要怎么打扮,美观值的和最大 




Input 


第一行两个数,w,n 
接下来n行,每行两个数,表示物品的信息,第一个数是物品的重量,第二个数是物品的美观值 




Output 


表示香穗子最多能得到的最大美观值和


Sample Input 




10 2
7 8
8 7




Sample Output 




8


Hint 


数据范围: 
n <= 100,w <= 10000 
答案保正小于Maxlongint 




Source 


NOIdaokan


算法:DP


裸的01背包,还要我解释么……

program p2;

const
 maxn=100;
 maxm=10000;

var
 n,m:longint;
 f:array [0..maxm] of longint;
 v,w:array [0..maxn] of longint;
 
procedure init;
var
 i:longint;
begin
 readln(m,n);
 for i:=1 to n do readln(w[i],v[i]);
end;

function max(x,y:longint):longint;
begin
 if x>y then exit(x) else exit(y);
end;

procedure main;
var
 i,j:longint;
begin
 for i:=1 to n do
  begin
   for j:=m downto w[i] do
   f[j]:=max(f[j],f[j-w[i]]+v[i]);
  end;
end;

begin
 assign(input,'2.in'); reset(input);
 assign(output,'2.out'); rewrite(output);
 
 init;
 main;
 writeln(f[m]);
 
 close(input); close(output);
end.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值