讨论 / 帮忙算下时间复杂率
1d1 2009-04-22 05:55:00
点我顶贴 收藏 删除
program zx;

var

a:array [1..100,1..100] of longint;

f:array [1..100] of longint;

i,j,k,t,s,n,m,max:longint;

c:string;

begin

readln(n,m);

for i:=1 to n do

begin

readln(c);

for j:=1 to m do

begin

val(c[j],a[i,j]);

if a[i,j]=0

then a[i,j]:=-1;

end;

end;

for i:=1 to n do

for j:=i to m do

begin

fillchar(f,sizeof(f),0);

for t:=1 to m do

for k:=i to j do

f[t]:=f[t]+a[k,t];

s:=0;

for k:=1 to m do

begin

if f[k]<f[k-1]+f[k]

then f[k]:=f[k-1]+f[k];

if f[k]>s

then s:=f[k];

end;

if s>max

then max:=s;

end;

writeln(max);

readln;

readln;

end.

#1 wish@2009-04-17 03:25:00
回复 删除
O(N^4)
#2 Mato完整版@2009-04-17 04:03:00
回复 删除
O(N^4)

你的算法本题一定TLE。

本题就是最大加权矩形,DP,O(N^3)。

#3 1d1@2009-04-22 05:54:00
回复 删除
谢谢啦。
#4 1d1@2009-04-22 05:55:00
回复 删除
我最大加权矩阵就是这样做的呀。

那个过了。

能不能把O(N^3)的算法发下啊。

谢谢啦。

查看更多回复
提交回复