140 条题解

  • 0
    @ 2009-09-05 11:04:12

    向上的三角形的顶点所在列要是偶数

    向下的三角形的顶点所在列要是奇数

    数组要开到201以上

  • 0
    @ 2009-09-04 23:08:28

    program b9_4;

    var dp:array[0..101,0..221]of longint;

    tab:array[0..101,0..221]of char;

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

    ch:char;

    function min(a,b:longint):longint;

    begin if a>b then exit(b)else exit(a); end;

    begin

    readln(n);

    for i:=1 to n do

    begin

    for j:=1 to 2*n-i do

    begin

    read(tab);

    if (tab='-') then

    dp:=min(min(dp,dp),dp)+1

    else

    dp:=0;

    if (dp>ans)and((j+i) mod 2 =0) then ans:=dp;

    end;

    readln;

    end;

    fillchar(dp,sizeof(dp),0);

    for i:=n downto 1 do

    begin

    for j:=1 to 2*n-i do

    begin

    if tab='-'then

    dp:=min(min(dp,dp),dp)+1

    else

    dp:=0;

    if (dp>ans)and((j+i) mod 2=1) then ans:=dp;

    end;

    end;

    writeln(ans*ans);

    end.

    程序依旧很短

  • 0
    @ 2009-09-03 19:55:29

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    今天人品爆发。。

  • 0
    @ 2009-08-20 13:49:38

    编译通过...

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

    ├ 测试数据 02:答案错误... ├ 标准行输出

     ├ 错误行输出

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

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

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

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

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

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

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

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

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

    Unaccepted 有效得分:90 有效耗时:0ms

  • 0
    @ 2009-08-17 12:24:12

    var n,i,j,k,min,max:integer;

    a:array[-100..200,-100..200]of char;

    b:array[-100..200,-100..200]of integer;

    kg:char;

    begin

    readln(n);

    for i:=1 to n do

    begin

    for j:=1 to i-1 do read(kg);

    for j:=1 to (n-i+1)*2-1 do read(a);

    readln;

    end;

    for i:=1 to n do

    for k:=1 to n do

    begin

    j:=k*2-1;

    if a='-' then

    if a='-' then

    begin

    min:=b;

    if bmax then max:=b

    end;

    writeln(sqr(max));

    end.

  • 0
    @ 2009-08-17 08:47:55

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    //---|---|---|---|---|--

    很好一次秒杀

    方程很好想跟盖房子差不多

    就是要考虑顶点...楼下有人说只考虑正面的其实是不对的...过了只因为数据弱

    比如这个数据

    0001100

    901110

    99000

    9990

    9=' '

    0='#'

    1='-'

    只考虑正面则输出1*1

    其实正解是2*2

    所以正确的是两个方向都要考虑

    [

    for i:=1 to n do

    begin

    k:=n+1-i;

    for j:=1 to n*2-1 do

    begin

    if f>0

    then f:=min(min(f,f),f)+1;

    if m[k,j]>0

    then m[k,j]:=min(min(m[k+1,j],m[k+1,j-1]),m[k+1,j+1])+1;

    if (f>max) and (odd(j+i-1)) then max:=f;

    if (m[k,j]>max) and (odd(j+k)) then max:=m[k,j];

    end;

    end;

    ]

  • 0
    @ 2009-08-15 16:18:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ...沮丧

    三次信心满满地提交,三次错愕地看着蹦出来的绿色字体

    第一次的信心满满来自认为题目简单

    第二次的信心满满来自发现了一个大错误,心里还纳闷咋这样也能过九个点

    第三次的信心满满来自前两次的信心满满

    。。。第四次胆战心惊却pass了。。。肯定数据哪里有耍阴的。。。

  • 0
    @ 2009-08-14 22:59:44
    • -...一开始ans的求法写错...天呐

    看了题解才知道为什么只用判断朝下的...

    害我写了个巨烦的dp...

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

    考虑朝上的不会错,只不过很烦...

  • 0
    @ 2009-08-14 22:55:21

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    注意判断顶点

    ---|---|---|---|---|---|---|---|---|---|---|-晒晒---|---|---|---|---|---|---|---|---|---|---|-

    program v1063;

    var f:array[0..101,0..202] of longint;

    i,j,n,max:longint;

    x:string;

    function min(a,b,c:longint):longint;

    begin

    min:=a;

    if b

  • 0
    @ 2009-08-05 02:53:14

    编译通过...

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:答案正确... 9ms

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

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

    网速真慢,足足等了2分钟。

    换来一次AC也值得吧。

    就是很简单的DP,关键就是用字符串操作把'#'和'-'换成方便操作的数组(布尔比较好)。而且为了之后的操作方便,必须把空格的位置也留在数组里。这样就会有一个比较直观的上下三角形之间的关系。再就是操作时一定要仔细地算好位置和长度。边算边判断答案会更好。哎呀,编写代码时无意地发现的“阴险”差点忘记说了。就是楼上人所说的只有奇数位的能算,偶数位的不能算。

    还是附上代码吧(我把数据倒着读入了,个人习惯):

    var

    s:array [1..100] of string;

    f:array [1..100,1..100,1..200] of boolean;

    n,i,j,k,l,ans:integer;

    begin

    readln(n);

    ans:=0;

    for i:=1 to n do readln(s[n+1-i]);

    for i:=1 to n do while s[i][1]=' ' do delete(s[i],1,1);

    for i:=1 to n do for j:=1 to i*2-1 do

    if s[i][j]='-'

    then begin

    f[1,i,n-i+j]:=true;

    ans:=1;

    end

    else f[1,i,n-i+j]:=false;

    for i:=2 to n do begin

    for j:=1 to n+1-i do begin

    for k:=1 to j do begin

    f:=f;

    for l:=1 to i*2-1 do begin

    f:=f and f[1,i+j-1,n-j+k*2-1-i+l];

    end;

    if f then ans:=i;

    end;

    end;

    end;

    writeln(ans*ans);

    end.

  • 0
    @ 2009-08-03 15:08:00

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    呜呜~~~~(>_

  • 0
    @ 2009-08-03 11:21:27

    “表演者排成n排,构成一个向前的正三角形(在屏幕上,即向下)。”

    对于为什么只考虑向下的三角形,本菜的解释是他们是要进行表演的,必须面向观众!

    草根解释……

    判断奇偶果然十分重要,虽然不判断也有90分……

  • 0
    @ 2009-07-31 13:44:57

    为什么考虑了朝上的正三角形就会错,不考虑就AC

  • 0
    @ 2009-07-27 21:28:40

    数据貌似没错额,n

  • 0
    @ 2009-07-27 20:20:41

    一次AC,解法和P1057盖房子差不多,只是要注意判断下方向:

    var n,i,j,k,answer:integer;

    s:string;

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

    f:array [0..102,0..102] of integer;

    function min(a,b:integer):integer;

    begin

    if aanswer then

    answer:=f;

    end;

    write(sqr(answer));

    end.

  • 0
    @ 2009-07-22 11:42:14

    注意奇偶性判断。。

    不判断的话第4个点过不了。

  • 0
    @ 2009-07-20 22:54:33

    第一次.考虑错了,写了个n方的交上去,还心想为什么n最大只有100。50分。

    第二次.没有判顶点是否是白色的。80分

    第三次.没有判顶点方向。90分

    第四次……终于AC了……纠结ing……

  • 0
    @ 2009-07-13 16:10:34

    program p1063;

    var

    f:array[0..1000,0..1000] of longint;

    a:array[0..1000,0..1000] of char;

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

    c:char;

    begin

    readln(n);

    for i:=1 to n do begin

    for k:=1 to i-1 do read(c);

    for j:=1 to 2*(n-i+1) do read(a);

    readln;

    end;

    for i:=1 to n do begin

    for j:=1 to 2*(n-i+1) do begin

    if odd(j) and (a='-') then f:=1;

    if (odd(j)) and (a='-') and (a='-')

    then if fmax then max:=f;

    end;

    end;

    writeln(sqr(max));

    end.

  • 0
    @ 2009-07-13 16:11:07

    var a:array [0..1000,0..1000] of char;

    i,j,k,l,m,n,b:longint;

    ch:char;

    f:array [0..1000,0..1000] of longint;

    function min(a,b:longint):longint;

    begin

    min:=a;

    if bb then b:=f;

    end;

    writeln(b*b);

    end.

  • 0
    @ 2009-07-11 10:29:04

    终于AC...貌似数据还是有点问题...

    考虑倒三角f:=min(f,f)+1(a,a='-')

    广东省N年前的省赛题....

信息

ID
1063
难度
6
分类
动态规划 点击显示
标签
递交数
3413
已通过
841
通过率
25%
被复制
10
上传者