讨论 / ac的大牛帮帮我
wyhbb163 2008-09-30 21:45:00
点我顶贴 收藏 删除
var

d:array[0..501,1..2] of integer;

f:array[0..501,0..501] of integer;

ch,n,c,i,j,q:integer;

begin

fillword(f,sizeof(f)div 2,1000);

readln(n,c);

for i:=1 to N do begin

readln(ch);

d[i,1]:=d[i-1,1];

d[i,2]:=d[i-1,2];

case ch of

1:d[i,1]:=d[i,1]+1;

0:d[i,2]:=d[i,2]+1;

end;

end;

for i:=1 to n do f[i,1]:=d[i,1]*d[i,2];

for i:=2 to c do

for j:=i to n do

for q:=i-1 to j do

if f[q,i-1]+(d[j,1]-d[q,1])*(d[j,2]-d[q,2])<f[j,i] then f[j,i]:=f[q,i-1]+(d[j,1]-d[q,1])*(d[j,2]-d[q,2]);

writeln(f[n,c]);

end.

为什么80分,而且好像都是输出8位,估计是数组有问题。

#1 不做寻常人@2008-09-16 05:58:00
回复 删除
把integer换成longint试试....
#2 lizhixin@2008-09-30 21:45:00
回复 删除
谢谢楼上!

program horse;

var a,b:array[0..600]of longint;

f:array[0..600,0..600]of longint;

co,n,m,i,c,k,j:longint;

查看更多回复
提交回复