303 条题解
-
0megatron LV 3 @ 2008-10-08 05:57:24
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
当年noip我背标程,结果搞反两个变量,悔恨啊。 -
02008-10-04 21:47:39@
0-1背包问题……
好囧readln(w[i],v[i])过不去,得用read。害得我白白浪费了两次提交……
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
var
w,v:array[0..100]of longint;
f:array[0..1000]of longint;
n,m,i,j,ans:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
begin
readln(m,n);
for i:=1 to n do read(w[i],v[i]);
for i:=1 to n do
for j:=m downto w[i] do
f[j]:=max(f[j-w[i]]+v[i],f[j]);
writeln(f[m]);
end. -
02008-10-04 21:14:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
噢~~~1☆纪念 -
02009-07-06 20:36:50@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
背包,一眼望去就知道 -
02008-09-27 21:03:56@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms对于刚开始为什么出问题 很无奈....
终于AC了!
oh,YES! -
02008-09-25 22:58:07@
终于A了。。。
Accepted 有效得分:100 有效耗时:0ms
for i:=1 to m do begin
readln(a,b);
for j:=t-a downto 0 do if (w[j]+b)>w[j+a] then w[j+a]:=w[j]+b;
end;
只是背包我一向用背的,没理解到的说。。。 -
02008-09-25 21:52:28@
练习一维背包中`
\
` -
02008-09-22 12:27:50@
program p1104;
var t,m,i,j,a,b:integer;
w:array[0..1000] of integer;
begin
readln(t,m);
fillchar(w,sizeof(w),0);
for i:=1 to m do begin
readln(a,b);
for j:=t-a downto 0 do if (w[j]+b)>w[j+a] then w[j+a]:=w[j]+b;
end;
writeln(w[t]);
end. -
02008-09-22 09:21:11@
无聊的0/1背包 别说DP了 我刚看见这题时候DFS搞定的
Program Medic;Const
Maxt = 1001;
Maxm = 101;Type
GArr = Record
t, v: Longint;
End;Var
G: Array [0..Maxm] Of GArr;
Opt: Array [0..Maxm,0..Maxt] Of Longint;
i, j, t, m, Ans :Longint;Function Max (a, b: Longint): Longint;
Begin
If a > b Then Max := a Else Max := b;
End;
Procedure Find(i, j: Longint);
Begin
If (i = 0) Or (j = 0) Then Begin
Opt[i, j] := 0;
Exit;
End;If j < G[i].t Then Begin
If Opt[i - 1, j] = -1 Then Find(i - 1, j);
Opt[i, j] := Opt[i - 1, j];
End Else Begin
If Opt[i - 1, j - G[i].t] = -1 Then Find(i - 1, j - G[i].t);
If Opt[i - 1, j] = -1 Then Find(i - 1, j);
Opt[i, j] := Max(Opt[i - 1, j - G[i].t] + G[i].v, Opt[i - 1, j]);
End;End;
Begin
FillChar(G, SizeOf(G), 0);
FillChar(Opt, SizeOf(Opt), 255);ReadLn(t, m);
For i:= 1 To m Do ReadLn(G[i].t, G[i].v);Find(m, t);
Ans := Opt[m, t];Write(Ans);
End.
-
02008-09-18 13:01:31@
。
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msFP里面根本就解不出来,
丢上来这样。
-
02008-09-14 21:25:52@
变态,居然超时~
-
02008-10-20 21:15:44@
好难啊!
-
02008-09-09 16:55:09@
program p1104;
var n,t,i,j,x,y:longint;
v:array[0..10000]of longint;begin
fillchar(v,sizeof(v),0);
readln(t,n);
for i:=1 to n do
begin
read(x,y);
for j:=t downto x do
if v[j-x]+y>v[j] then v[j]:=v[j-x]+y;
end;
writeln(v[t]);
end.可怜啊~~输入READ多了个LN就挂了两次~~
-
02008-09-06 14:56:40@
program p_1;
var x:array[0..1000] of longint;
i,j,t,n,t1,v:longint;
begin
readln(t,n);
for i:=1 to n do
begin
readln(t1,v);
if t1x[j] then x[j]:=x[j-t1]+v;
end;
write(x[t]);
end.
学的某牛
好崇拜 -
02008-09-05 12:42:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 634ms
├ 测试数据 05:答案正确... 634ms
├ 测试数据 06:答案正确... 634ms
├ 测试数据 07:答案正确... 634ms
├ 测试数据 08:答案正确... 634ms
├ 测试数据 09:答案正确... 634ms
├ 测试数据 10:答案正确... 619ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:4423ms一颗星纪念
-
02008-09-03 19:33:09@
program ads;
var
v,p:array[1..1000]of integer;
a:array[0..100,0..1000]of integer;
i,j,m,t:integer;
begin
read(t,m);
for i:=1 to m do
readln(v[i],p[i]);
fillchar(a,sizeof(a),0);
for i:=1 to m do
for j:=1 to t do
begin
if j>=v[i] then
begin
if (a+p[i])>a then
a:=a+p[i]
else a:=a
end
else a:=a;
end;
writeln(a[m,t]);
end. -
02008-09-01 09:03:41@
太简单了吧,,,。
郁闷,,
最弱智的DP··· -
02008-08-31 12:53:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msi和j写反了,交了N遍
-
02008-08-27 17:56:06@
正的是完全背包的做法,倒着是01背包的做法……
意义、作用不同。。
去看《背包九讲》吧。 -
02008-08-27 17:22:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-