84 条题解
-
0LV 0 @ 2008-08-23 18:49:28
...郁闷被抢了...2维的背包!!!
f(A,B)=f(A-a[i],B-b[i])+c[i]*2; -
-12009-11-05 23:11:08@
诡异
同一个程序第一次10分,其他全错
第二次交100 -
-12009-10-23 15:53:36@
一个令人汗颜的而结果......
(提交流程)
第一次,把样例过了,结果交上去是70分(后三个没过)。
改了改...
第二次,样例没过,交上去竟然是...100...(跑的样例为20...)这莫非是春哥,曾哥附体?
(注意越界处理,改为a或b即可)
program p1428;
var
f : array[0..50,0..50] of int64;
sa, sb, sc : array[0..1000] of int64;
i, j, k, a, b, n, p1, p2, max : longint;
beginfor i := 0 to 50 do
for j := 0 to 50 do
f := -1;
readln(n,a,b);
for i:=1 to n do
readln(sa[i],sb[i],sc[i]);
f[0,0] := 0;
for i:=1 to n do
for j:=50 downto 0 do
for k:=50 downto 0 do
if f[j,k]>=0 then
begin
p1:=j+sa[i];
if p1>a then p1:=a;
p2:=k+sb[i];
if p2>b then p2:=b;
if f[p1,p2]f[j,k]+sc[i] then
f[p1,p2]:=f[j,k]+sc[i];
end;
writeln(f[a,b]*2);end.
-
-12009-09-06 21:35:54@
我,一只纯洁的海豚,
oooO ↘┏━┓ ↙ Oooo
( 踩)→┃ 踩 ┃ ←(踩 )
\ ( →┃ ┃ ← ) /
_)↗┗━┛ ↖(/
在无数先烈们的尸体上,冲向了终点!!!~~~~~
然后被放了一冷枪(临时统计价格的v没有用longlong,也就是int64)
英勇的倒下了
但是
我又站了起来
oooO ↘┏━┓ ↙ Oooo
( 踩)→┃ 踩 ┃ ←(踩 )
\ ( →┃ ┃ ← ) /
_)↗┗━┛ ↖(/
在无数先烈们的尸体上,冲向了终点!!!~~~~~
没有倒下,0ms AC
在此感谢楼下不远的xiaobai,我重新想起了二维背包
并编出了c/c++程序
现供大家参考
此致敬礼
南雅c107班,海豚#include
#include
long long b[61][61],v;
long i,j,k,n,t1,t2,w1,w2,a[1001][3];
int main()
{
scanf("%ld%ld%ld",&n,&t1,&t2);
for(i=1;i=0;k--)
if(b[j][k]!=0)
{
w1=j+a[i][0];w2=k+a[i][1];
if(w1>t1)w1=t1;
if(w2>t2)w2=t2;
v=b[j][k]+a[i][2];
if(b[w1][w2]==0)b[w1][w2]=v;else if(v