273 条题解
-
0hws_1230 LV 8 @ 2008-12-09 19:19:07
C++的精湛
#include
int main(void)
{
int (*f)[1001]=new int[1001][1001];
int n,m,maxn=-99999999;
scanf("%d%d",&n,&m);
for (int i=1;iy?y:x)
if (c==1)
{
f[i][j]=min(min(f[j],f[i][j-1]),f[j-1])+1;
maxn=max(maxn,f[i][j]);
}
}
printf("%d\n",maxn);
delete []f;
return 0;
} -
02008-12-06 20:14:53@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msDP~~~一次AC~~~0)
***|Hpec killed P1057 with knife
-
02008-11-20 01:05:18@
用C的同志们加油
#include
int arr[1001][1001];
int f[1001][1001];
int main(void)
{
int i,j,n,m,min,max=0;
scanf("%d%d",&n,&m);
for(i=1;i -
02008-11-18 22:27:57@
for i:=1 to n do
for j:=1 to m do
if (a0)and(a0)and(a0) then
f:=min(f,f,f)+1
else f:=1;
少判断一种情况居然AC了,无语。。。
if (a0)and(a0)and(a0) then
这句要加a0............. -
02008-11-13 17:42:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms本题可以使用最大子矩形写,另外还有一个DP方法
f[i][j]==min(f[j],f[i][j-1],f[j-1])+1 map[i][j]0 -
02008-11-12 09:24:54@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 212ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:212m -
02008-11-10 14:02:20@
最大子矩阵练手题
-
02008-11-09 18:05:42@
看了各位牛人的讲解后的结果,谢谢!
---|---|---|---|---|---|---|---|---|---|---|--
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar max,ch,i,j,n,m:longint;map:array[0..1001,0..1001]of integer;
function min(a,b,c:integer):integer;
begin
if a>b then a:=b;
if a>c then a:=c;
exit(a);
end;
begin
readln(n,m);
max:=0;
fillchar(map,sizeof(map),0);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(ch);
if ch0 then
begin
map:=min(map,map,map)+1;
if map>max then max:=map;
end;
end;
readln;
end;
writeln(max);
end. -
02008-11-07 19:48:09@
program id1057;
var
a:array[0..1001,0..1001]of boolean;
i,j,k,m,n,le,ii:integer;
procedure init;
begin
readln(n,m);
for i:=1 to n do
for j:=1 to m do
begin
read(k);
if k=0 then a:=false
else a:=true;
end;
end;
procedure make(i,j:integer);
var
i1,j1:integer;
b:boolean;
begin
repeat
ii:=ii+1;
b:=true;
if athen
for i1:=i to (i+ii)do
begin
b:=b and(a[i1,j+ii]);
if not(b)then break;end;
if b then
for i1:=j to (j+ii)do
begin
b:=b and(a);
if not(b)then break;end;
until not(b);
if ii>le then le:=ii;
end;
begin
fillchar(a,sizeof(a),false);
init;
le:=0;
for i:=1 to n do
for j:=1 to m do
begin
ii:=0;
make(i,j);
end;
writeln(le);
end.编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出 2
├ 错误行输出 3
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案错误... ├ 标准行输出 3
├ 错误行输出 4
├ 测试数据 07:答案错误... ├ 标准行输出 12
├ 错误行输出 18
├ 测试数据 08:答案错误... ├ 标准行输出 12
├ 错误行输出 17
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:60 有效耗时:0ms泪奔~
跪求CK教主,为什么不对~ -
02009-08-20 20:50:48@
-
02008-11-07 12:07:46@
var
max,min,i,j,n,m:integer;
f:array[1..1000,1..1000]of integer;
begin
readln(n,m);
max:=0;
for i:=1 to n do for j:=1 to m do read(f);
for i:=2 to n do for j:=2 to m do if f0 then
begin
min:=10000;
if f -
02008-11-06 23:37:05@
鉴于偶自己开发的方法和各位都不一样所以贴上来得色得色..- -\
明白了这样的数组aa[1001][1001]要设成全局变量,不然运行时会报错...
但不知道为啥...希望高人指点...
又因为没删中间看过程的输出.交了三次才AC...
不容易啊...
#include
int aa[1001][1001];
int max,n,m;
int main()
{
int i,j,k,mk1,mk2;
scanf("%d %d",&n,&m);
for(i=0;i -
02008-11-04 22:05:20@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms我是初学者,这种题型以前没见过。
感谢各位大大,我是看了各位的题解后才编出的这个程序。 -
02008-11-04 18:12:03@
#include
#define maxn 1000
#define maxm 1000
#define get_min(a,b) ((a) -
02008-11-03 19:41:05@
动规过一遍,秒杀……
暴搜过一遍,居然还秒杀……
Dragon 是神仙怎么着………… -
02008-11-03 15:16:47@
...虽然过了,但第五个数据错了好几遍,为什么我输出的是0,他的是1呢
我是在做的时候记录max,后来改成最后循环做一遍,就对了,有点奇怪 -
02008-11-03 12:21:30@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-11-02 21:19:19@
初始化只有一句: f:=map map是读入的地图
f:=min(f,f,f)+1; 条件,a=a=a=a=1
ans:=max(f);
哈,想不到我这个大傻也有头一次交就AC的时候,也许是因为先做了奶牛浴场那题才看到这个题的缘故……
这个题应该是传说中的‘最优子矩阵系列’的入门题吧 -
02008-11-01 14:43:45@
编译错误!!!!!!!!...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:100000000year -
02008-10-29 15:32:55@
Var
n,m,i,j,num:Integer;
a:Array[0..1000,0..1000,0..1] Of Integer;
Begin
Readln(n,m);
FillChar(a,SizeOf(a),0);
num:=1;
For i:= 1 To m Do
For j:= 1 To n Do
Begin
Read(a);
If a=1 Then a:=1;
If a+a+a=3 Then
a:=a+a;
If a>num Then num:=a;
End;
Write(num);
End.为什么会错?迷糊啊!大家一定要告诉我哈!