题解

273 条题解

  • 0
    @ 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

  • 0
    @ 2009-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

  • 0
    @ 2009-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次..........囧

  • 0
    @ 2009-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

  • 0
    @ 2009-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.

  • 0
    @ 2009-08-07 21:05:02



    4个for也过

  • 0
    @ 2009-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

  • 0
    @ 2009-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 | 堆栈溢出错

  • 0
    @ 2009-07-29 22:37:07

    数据太弱了!!

  • 0
    @ 2009-07-27 15:50:26

    b:=min(b,b,b)+1;{a0}

    方程可能不大好理解,但只要自己画过就没什么问题

  • 0
    @ 2009-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

  • 0
    @ 2009-07-21 20:13:48

    第一次做动规

    好神奇啊!

    方程居然可以那样写~~~

  • 0
    @ 2009-07-20 23:34:34

    超超超经典第题目,难道居然可以是怎样把转移代价降到O(1)..太经典了。。。而且这个状态设计不难,转移方程简直是智慧经典啊……

  • 0
    @ 2009-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

    只是状态方程不是很懂。。。

  • 0
    @ 2009-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.

  • 0
    @ 2009-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

  • 0
    @ 2009-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.

  • 0
    @ 2009-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

  • 0
    @ 2009-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

  • 0
    @ 2009-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 有效耗时:0ms

    var 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

信息

ID
1057
难度
4
分类
动态规划 点击显示
标签
(无)
递交数
6650
已通过
3067
通过率
46%
被复制
8
上传者