[报告]
这道题目真的好冷……
PS,一道非常经典的石子划分问题,用0/1背包,1次AC。(这是我的URAL史上第一次一次AC,祝贺一下)。
解释下:相当于有N种物品,每种物品的重量为W[I],价值也为W[I],放到容量∑(W[I])/2的背包里。按照0/1背包那样求出最大价值(设为V)后,输出∑(W[I])-2*V就可以AC了。
[程序]
// TASK: 1005 Stone pilevar
n,m,m2:longint;
w:array [0..20] of longint;
f:array [0..20*100000] of longint;
i,j,k:longint;
begin
read(n);
m:=0;
for i:=1 to n do
begin
read(w[i]);
inc(m,w[i]);
end;
m2:=m;
m:=m div 2;
fillchar(f,sizeof(f),0);
for i:=1 to n do
for j:=m downto w[i] do
if f[j-w[i]]+w[i]>f[j] then
f[j]:=f[j-w[i]]+w[i];
writeln(m2-2*f[m]);
end.