【未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!未经作者同意,不许转载!!!!!!】
【讨论加我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 非诚勿扰!非诚勿扰!非诚勿扰!】