状态题目:最大加权矩形
题目编号:106-最大加权矩形 查看该题
状态: Unaccepted
测评机: Xeond[6]
得分: 0分
提交日期: 2008-9-12 19:53:00
有效耗时: 该状态没有记录
测试结果1: 测试结果错误.错误结果为:561
正确结果应为:947
测试结果2: 测试结果错误.错误结果为:2835
正确结果应为:3061
测试结果3: 测试结果错误.错误结果为:6600
正确结果应为:8275
测试结果4: 测试结果错误.错误结果为:13530
正确结果应为:14300
测试结果5: 测试结果错误.错误结果为:5762
正确结果应为:6653
提交代码: program sdaff;
var
m,n,i,j,k,sum,max,p,q:longint;
a,f1,f0,s:array[0..150,0..150] of longint;
begin
readln(n);
filldword(f1,sizeof(f1) div 4,maxlongint+1);
fillchar(f0,sizeof(f0),0);
fillchar(s,sizeof(s),0);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(a[i,j]);
s[i,j]:=s[i,j-1]+a[i,j];
end;
readln;
end;
for i:=1 to n do
begin
for j:=1 to n do
for k:=j to n do
begin
f1[j,k]:=s[i,k]-s[i,j]+a[i,j]+f0[j,k];
if f1[j,k]<0 then f1[j,k]:=0;
end;
f0:=f1;
end;
max:=-maxlongint;
for i:=1 to n do
for j:=i to n do
if f0[i,j]>max then max:=f0[i,j];
writeln(max);
end.
我的思路是预处理一次然后将
这个二维问题压缩成一维的代码的很好写了拉~
题目:打水漂 问题编号:145