【USACO2008NOV】采购干草——会做的题目做错才可惜_耀晨SYW

4 篇文章 0 订阅
4 篇文章 0 订阅

【未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!】

【讨论加我QQ:1721324995  讨论加我QQ:1721324995  讨论加我QQ:1721324995  非诚勿扰!非诚勿扰!非诚勿扰!】


题目见链接【戳】

思路

      很明显,这是一个背包问题。说准确点,是一个完全背包,是裸题。不出10分钟,都打完了完全背包:



      这似乎一点也没错,样例也过了。一测,WA90%(还有一个点是样例……)。这就奇怪了,怎么会这样?

      我又人工出了几组数据,其中有一组是这样的:

3 13
4 5
2 3
6 8
      很明显,直接买两份“6 8”的干草即可。但,我的程序出来的却是0!

      在一看程序,才明白:不一定非要买正好H磅干草,可以比H磅多得多,但又不会超过2*H。

      于是有了下面的AC程序:

uses math;
var
 f:array[0..100000]of longint;
 v,w:array[0..50000]of longint;
 n,m,ans:longint;
 i,j:longint;

begin
 readln(n,m);
 for i:=1 to n do readln(v[i],w[i]);
 fillchar(f,sizeof(f),$7f);
 f[0]:=0;
 for i:=1 to n do
  for j:=v[i] to m*2 do
   f[j]:=min(f[j],f[j-v[i]]+w[i]);
 ans:=maxlongint;
 for i:=m to m*2 do ans:=min(ans,f[i]);
 writeln(ans);
end.

      看来审题是非常重要的,不论在计算机信息学还是文化课。仔细审题能减少80%的弱智错误,能使99%的人做的更好。在中国这个应试教育的系统中,审题应是学生必备的一项“技能”。不会做不可惜,但会做的题目因弱智错误失分,这才可惜与可悲啊!


【未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!】

【讨论加我QQ:1721324995  讨论加我QQ:1721324995  讨论加我QQ:1721324995  非诚勿扰!非诚勿扰!非诚勿扰!】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值