273 条题解
-
0prince_hao LV 10 @ 2009-08-26 20:59:12
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms二分答案+SUM预处理=0MSAC
-
02009-08-17 14:06:21@
program fangzi;
var a:array[1..1000,1..1000] of integer;
max,n,m,i,j:integer;function min(a,b,c:integer):integer;
begin
if a>b then
begin
min:=b;
if c -
02009-08-11 23:01:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms为什么我总要在水题上提交2次..........囧
-
02009-08-11 21:15:01@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
using namespace std;
int main()
{
int n,m,a[500][500],max=0;
cin>>n>>m;
for(int i=1;ia[i][j];
for(int i=1;i -
02009-08-10 11:41:14@
我做的偏复杂
type int=longint;
var
i,j,m,n,ans:int;
G:array[0..1000,0..1000]of 0..1;
S,D,F,X:array[0..1000,0..1000]of int;Function min(x,y:int):int;
begin
if x>y then min:=y else min:=x;
end;Function max(x,y:int):int;
begin
max:=x+y-min(x,y);
end;begin
fillchar(G,sizeof(G),0);
fillchar(S,sizeof(S),0);
fillchar(D,sizeof(D),0);
fillchar(X,sizeof(X),0);
fillchar(F,sizeof(F),0);readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do read(G);
readln;
end;for i:=1 to n do
for j:=1 to m do
if G=1 then
begin
S:=S+G;
D:=D+G;
end;for i:=1 to n do
for j:=1 to m do
X:=min(S,D);for i:=1 to n do
for j:=1 to m do
if X>F then F:=F+1
else F:=X;ans:=0;
for i:=1 to n do
for j:=1 to m do
ans:=max(F,ans)end.
-
02009-08-07 21:05:02@
晕
4个for也过 -
02009-08-05 09:51:25@
var i,j,k,max,n,m:integer;
a:array[0..1000,0..1000] of 0..1;
f:array[0..1000,0..1000] of integer;
function min(x,y,z:integer):integer;
begin
min:=10000;
if x -
02009-08-01 17:21:22@
终于AC……看来二分答案还是能过很多题的!
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这是什么该死的错误……
编译通过...
├ 测试数据 01:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 02:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 03:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 04:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 05:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 06:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 07:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 08:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 09:运行时错误...| 错误号: 202 | 堆栈溢出错
├ 测试数据 10:运行时错误...| 错误号: 202 | 堆栈溢出错 -
02009-07-29 22:37:07@
数据太弱了!!
-
02009-07-27 15:50:26@
b:=min(b,b,b)+1;{a0}
方程可能不大好理解,但只要自己画过就没什么问题 -
02009-07-26 10:41:00@
想了很久才看出那道状态转移方程,郁闷 囧TZ
var i,j,k,max,n,m:integer;
a:array[0..1000,0..1000] of 0..1;
f:array[0..1000,0..1000] of integer;
function min(x,y,z:integer):integer;
begin
min:=10000;
if x -
02009-07-21 20:13:48@
第一次做动规
好神奇啊!
方程居然可以那样写~~~
-
02009-07-20 23:34:34@
超超超经典第题目,难道居然可以是怎样把转移代价降到O(1)..太经典了。。。而且这个状态设计不难,转移方程简直是智慧经典啊……
-
02009-07-18 19:29:02@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
只是状态方程不是很懂。。。 -
02009-07-17 18:44:44@
神奇!!!
f:=min(f,f,f)+1;var
n,m,i,j,max:longint;
f:array[0..1000,0..1000] of longint;
function min(a,b:longint):longint;
begin if amax then max:=f;
end;
writeln(max);
end. -
02009-07-17 14:59:27@
program dsa;
var n,m,num1,num2,i,j,i1,z,x,y,max:integer;
a:array[1..1001,1..1001] of integer;
begin
fillchar(a,sizeof(a),0);
read(n,m);
max:=0;
for i:=1 to n do
for j:=1 to m do read(a);
for i:=1 to n do
for j:=1 to m do
begin
if a=1 then
begin
z:=1;
x:=i+1;
y:=j+1;
while (x -
02009-07-17 08:48:54@
感觉我的不像是DP的说。。。
var
flag:boolean;
n,m,i,j,k,l,t,max:longint;
a:array[1..1000,1..1000]of 0..1;
f:array[1..1000,1..1000]of integer;
begin
fillchar(a,sizeof(a),0);
fillchar(f,sizeof(f),0);
readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(a);
if a=1 then f:=1;
end;
readln;
end;
for i:=1 to n do
for j:=1 to m do
if f=1 then
begin
flag:=true;
t:=0;
repeat
for k:=i to i+t+1 do if a[k,j+t+1]=0 then flag:=false;
for k:=j to j+t+1 do if a=0 then flag:=false;
if flag then inc(t);
until not flag;
f:=t+1;
end;
max:=0;
for i:=1 to n do
for j:=1 to m do
if f>max then max:=f;
writeln(max);
end. -
02009-07-13 11:48:03@
var a:array [0..1001,0..1001] of longint;
f:array [0..1001,0..1001] of longint;i,j,sum,k,l,o,m,n,p,s:longint;
function min(a,b,c:longint):longint;
begin
min:=99999;
if a -
02009-06-29 19:26:12@
原来一直搞不明白,为什么求最大面积,却通过min来转移状态。
后来知道了,原来是要保证 从 左,上,斜上 三方向来的路径都满足构成正方形的条件,也即没有瑕疵。只要当前位置是1,则通过三方向的f的最小值就可推知以该点为最右下角时可形成的最大正方形。注意输出的时候要搜一边,找maxd。
初始化 if a=1 then f=1;
f:=min(f,f,f)+1;(if a=1)
感谢大牛,说实话对我来说不是个简单的题。
Program vijos_1057;
Var
n,m,i,j,d:longint;
f,a:array[0..1000,0..1000]of longint;Function min(x,y,z:longint):longint;
Var
t:longint;
Begin
t:=x;
if y -
02009-06-25 19:23:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar n,m,i,j,k,sum:integer;
post:Array[0..1001,0..1001] of 0..1;
f:array[0..1001,0..1001] of integer;
//////////////////////////////////////////
function min(s,t,q:integer):integer;
begin
min:=t;
if s