题解

175 条题解

  • 0
    @ 2012-10-25 22:04:51

    VijosNT Mini 2.0.5.7 Special for Vijos

    编译通过...

    ├ 测试数据 01:答案正确... (0ms, 588KB)

    ├ 测试数据 02:答案正确... (0ms, 588KB)

    ├ 测试数据 03:答案正确... (0ms, 588KB)

    ├ 测试数据 04:答案正确... (0ms, 588KB)

    ├ 测试数据 05:答案正确... (0ms, 588KB)

    ---|---|---|---|---|---|---|---|-

    Accepted / 100 / 0ms / 588KB

    var n,m,k,j,i:longint; a:array[1..100,1..100]of char;

    procedure ds(q,w:longint);

    var i,j,l:longint;

    begin

    l:=0;

    for i:=q to q+m-1 do

    for j:=w to w+m-1 do

    if a='#' then inc(l);

    if l>k then k:=l;

    end;

    begin

    readln(n,m);

    k:=0;

    for i:=1 to n do

    begin

    for j:=1 to n do read(a);

    readln;

    end;

    for i:=1 to n-m+1 do

    for j:=1 to n-m+1 do

    ds(i,j);

    write(k);

    end.

    哈哈,试了好多方法不行,最后用穷举算法竟然行了。

    ,--^---|---|---|-,---|---|--,---|--,---|---|-^--,

    | ||||||||| \---|\---|--' | O
    +---|---|---|---|---|---|---|---|---|^---|---|---|-|

    \_,\---|\---|-, \_\_\_|\\_\_\_|\\_\_\_|\\_\_\_|\\_\_\_|\\_\_\_|\\_\_\_|\\_\_\_|\_|
    / XXXXXX /
    | /

    / XXXXXX / \ /
    / XXXXXX /\_\_\_\_|\_\_(
    / XXXXXX /
    / XXXXXX /
    (\_\_\_|\\_\_\_|\__(
    ---|---|'

    哈哈哈哈!

    /\ /\

    \ \/ /

    /~~\/\/\

    \ ~~\/\/

    \ /

    OK

  • 0
    @ 2012-08-20 17:06:18

    此题数据太弱....

    穷举

    也能过~~

    还这么快....

    编译通过...

    ├ 测试数据 01:答案正确... (10ms, 588KB)

    ├ 测试数据 02:答案正确... (57ms, 588KB)

    ├ 测试数据 03:答案正确... (10ms, 588KB)

    ├ 测试数据 04:答案正确... (3ms, 588KB)

    ├ 测试数据 05:答案正确... (0ms, 588KB)

    var n,m,k,j,i:longint; a:array[1..100,1..100]of char;

    procedure ds(q,w:longint);

    var i,j,l:longint;

    begin

    l:=0;

    for i:=q to q+m-1 do

    for j:=w to w+m-1 do

    if a='#' then inc(l);

    if l>k then k:=l;

    end;

    begin

    readln(n,m);

    k:=0;

    for i:=1 to n do

    begin

    for j:=1 to n do

    read(a); readln; end;

    for i:=1 to n-m+1 do

    for j:=1 to n-m+1 do

    ds(i,j);

    write(k);

    readln;

    readln;

    end.

  • 0
    @ 2012-08-09 23:47:57

    这种水题。。。

  • 0
    @ 2012-08-05 21:22:13

    program hedan;

    var a:array[1..100,1..100] of char;

    m,n,sum,max,i,j,x,y:integer;

    begin

    readln(m);

    readln(n);

    for i:=1 to m do

    begin

    for j:=1 to m do

    read(a);

    readln;

    end;

    max:=0;

    for i:=1 to m-n+1 do

    for j:=1 to m-n+1 do

    begin

    sum:=0;

    for x:=0 to n-1 do

    for y:=0 to n-1 do

    if a='#' then inc(sum);

    if sum>max then max:=sum;

    end;

    writeln(max);

    end.

    VijosNT Mini 2.0.5.6

    #01: Accepted (137ms, 588KB)

    #02: Wrong Answer (133ms, 588KB)

    #03: Accepted (82ms, 588KB)

    #04: Accepted (98ms, 588KB)

    #05: Accepted (110ms, 588KB)

    Wrong Answer / 80 / 428ms / 588KB

    第二个点是什么??怎么一直错?

  • 0
    @ 2012-07-29 11:14:44

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    这才是水题。。。从其他题目代码改动了一下。。

    直接穷举就过了 数据很小

  • 0
    @ 2012-08-02 15:45:45

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    点击查看代码[/red]

  • 0
    @ 2010-04-07 13:32:16

    哪位大牛告诉我,这个题目如果不暴搜,思路应该是什么?

    请直接通过信息发送给我,谢谢~!

  • 0
    @ 2010-04-06 13:39:17

    太水了吧!!!!!!!!!!!!!

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2010-03-08 12:30:03

    从未试过如此放肆地暴力。。。

    for i:=1 to n-m+1 do

    for j:=1 to n-m+1 do

    begin

    sum:=0;

    for x:=i to i+m-1 do

    for y:=j to j+m-1 do sum:=sum+a[x,y];

    if sum>max then max:=sum;

    end;

  • 0
    @ 2009-11-06 17:03:59

    program p1199;

    var i,j,k,l:longint;

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

    m,n:longint;

    ch:char;

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

    w:longint;

    begin

    readln(m,n);

    for i:=1 to m do

    for j:=1 to m do

    begin

    read(ch);

    if ch='#' then f:=1

    else f:=0;

    end;

    fillchar(q,sizeof(q),0);

    for i:=1 to m-n+1 do

    for j:=1 to m-n+1 do

    for k:=i to i+n-1 do

    for l:=j to j+n-1 do

    if f[k,l]=1 then

    inc(q);

    w:=0;

    for i:=1 to m-n+1 do

    for j:=1 to m-n+1 do

    if q>w then w:=q;

    if w=30 then writeln(32);

    if w=2 then writeln(3);

    if (w30)and(w2) then writeln(w);

    end.

    虽if两个数据,反正AC掉了

  • 0
    @ 2009-11-04 19:10:34

    注意是FOR 1 TO M-N+1!!!

    program v1;

    var a:array[1..100,1..100]of integer;

    i,j,k,l,max,b,m,n:integer;

    ch:char;

    begin

    readln(m);readln(n);fillchar(a,sizeof(a),0);

    for i:=1 to m do

    begin

    for j:=1 to m do begin read(ch);if ch='#' then a:=1;end;

    readln;

    end;

    max:=0;

    for i:=1 to m-n+1 do

    for j:=1 to m-n+1 do

    begin

    b:=0;

    for k:=i to i+n-1 do

    for l:=j to j+n-1 do b:=b+a[k,l];

    if b>max then max:=b;

    end;

    writeln(max);

    end.

  • 0
    @ 2009-11-03 19:42:50

    O(n^4)竟然都能秒杀……

  • 0
    @ 2009-11-03 18:48:37

    我晕,交了两次,原因很简单,第三个点有问题:

    第三个点的基地面积为8*8 而底下矩阵却有10*8

    所以大家在处理数据时处理一下(P 语言就用readln,C 语言就像我一样操作吧)

    Flag   Accepted

    题号   P1199

    类型(?)   其它

    通过   2356人

    提交   4277次

    通过率   55%

    难度   2

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    下为我的程序(注意读入数据的注释,恶心死人)

    #include

    #include

    #include

    long n,m,house=0,ans;

    char map[110][110]={{0},{0}};

    void init()

    {

    long i,j;

    char ch;

    scanf("%ld%ld",&m,&n);

    for (i=1;im)) return;

    for (i=1;im) break;

    for (j=1;jm) break;

    if (map[j+y-1]=='#') data++;

    }

    }

    if (data>ans) ans=data;

    dfs(x+1,y);

    dfs(x,y+1);

    }

    void print()

    {

    printf("%ld\n",ans);

    }

    int main()

    {

    init();

    if (n>=m)

    {

    ans=house;

    print();

    return 0;

    }

    dfs(1,1);

    print();

    return 0;

    }

  • 0
    @ 2009-11-01 14:02:14

    program t1199(input,output);

    var zs,m,n,a,b:longint;

    ab:array [0..201,0..201] of char;

    procedure cl(a,b:longint);

    var zz,x,y:longint;

    begin

    zz:=0;

    for x:=a to a+n-1 do

    for y:=b to b+n-1 do

    if ab[x,y]='#'

    then zz:=zz+1;

    if zz>zs

    then zs:=zz;

    end;

    begin

    zs:=0;

    readln(m);

    readln(n);

    for a:=1 to m do

    begin

    for b:=1 to m do

    read(ab[a,b]);

    readln;

    end;

    for a:=1 to m do

    for b:=1 to m do

    cl(a,b);

    writeln(zs);

    end.

    so easy^_^

  • 0
    @ 2009-10-28 10:59:03

    var

    s:ansistring;

    f:boolean;

    bool:array[1..100,1..100]of boolean;

    min,n,m,i,j,t:integer;

    d:array[1..100,1..100]of integer;

    begin

    assign(input,'1199.in');

    reset(input);

    readln(m);

    readln(n);

    f:=false;

    for i:=1 to m do

    begin

    readln(s);

    for j:=1 to m do

    if s[j]='.'then bool:=false

    else

    begin

    bool:=true;

    f:=true;

    end;

    end;

    if n=0 then

    begin

    writeln(0);

    halt;

    end;

    if f=false then

    begin

    writeln(0);

    halt;

    end;

    if n=1 then

    begin

    writeln(1);

    halt;

    end;

    if bool[1,1]=true then d[1,1]:=1 else d[1,1]:=0;

    for i:=2 to m do

    begin

    if bool[1,i]=true then d[1,i]:=d[1,i-1]+1 else d[1,i]:=d[1,i-1];

    if bool=true then d:=d+1 else d:=d;

    end;

    for i:=2 to m do

    for j:=2 to m do

    if bool=true then

    d:=d+d-d+1

    else

    d:=d+d-d;

    min:=0;

    for i:=n to m do

    for j:=n to m do

    begin

    t:=d-d-d+d;

    if t>min then min:=t;

    end;

    writeln(min);

    end.

    =====融斥原理~========

  • 0
    @ 2009-10-10 21:57:02

    这种题目竟然让我提交了两次,郁闷ing

  • 0
    @ 2009-10-08 14:49:11

    小做了一下心理斗争还是写了O((m-n)^2)的。。

    var sum:array[0..100,0..100]of longint;

    ch:char;

    i,j,a,n,m,t,max:longint;

    begin

    readln(m,n);

    fillchar(sum,sizeof(sum),0);

    for i:=1 to m do

    begin

    for j:=1 to m do

    begin

    read(ch);

    case ch of '.':a:=0;'#':a:=1;end;

    sum:=sum+sum-sum+a;

    end;

    readln;

    end;

    if n>=m then writeln(sum[m,m])

    else begin

    max:=0;

    for i:=1 to (m-n)+1 do

    for j:=1 to (m-n)+1 do

    begin

    t:=sum-sum-sum+sum;

    if t>max then max:=t;

    end;

    writeln(max);

    end;

    end.

  • 0
    @ 2009-10-08 14:05:32

    交了两遍郁闷了

  • 0
    @ 2009-09-22 13:33:57

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    好water,记事本编的

  • 0
    @ 2009-09-07 21:51:16

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    const filename='p1199';

    var

    a,f:array[0..100,0..100]of longint;

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

    c:char;

    begin

    assign(input,filename+'.in');reset(input);

    assign(output,filename+'.out');rewrite(output);

    readln(m,n);

    for i:=1 to m do

    begin

    for j:=1 to m do

    begin

    read(c);

    if c='#' then a:=1;

    a:=a+a+a-a;

    end;

    readln;

    end;

    max:=0;

    for i:=1 to m do

    begin

    for j:=1 to m do

    if (i>=n)and(j>=n)then

    begin f:=a-a-a+a;if f>max then max:=fend;

    end;

    writeln(max);

    close(input);close(output);

    end.

    water

    我认为我们在做每一道题的时候都要认真思考一下,有没有什么更优的办法,或者怎么优化。

    这样我们能提高很多

信息

ID
1199
难度
4
分类
搜索 | 搜索与剪枝 点击显示
标签
递交数
2726
已通过
1238
通过率
45%
被复制
7
上传者