140 条题解

  • 0
    @ 2009-11-09 21:00:38

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

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

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

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

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

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

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

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

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

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

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

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

    贪心贪来40,动归出现无限小错误。。。

  • 0
    @ 2009-11-06 21:43:39

    kao,最大的三角形难道不能向后么

  • 0
    @ 2009-11-06 19:41:50

    const

    q=100;

    var

    a:array [1..2*q-1,1..2*q+1] of longint;

    b:array [1..2*q-1,1..2*q+1] of boolean;

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

    s:ansistring;

    function min(x,y,z:longint):longint;

    var

    ll:longint;

    begin

    min:=x;

    if min>y then min:=y;

    if min>z then min:=z;

    end;

    begin

    fillchar(a,sizeof(a),0);

    fillchar(b,sizeof(b),false);

    readln(n);

    for i:=1 to n do

    begin

    readln(s);

    while s[1]=' ' do delete(s,1,1);

    while s[length(s)]=' ' do delete(s,length(s),1);

    for j:=1 to length(s) do

    if s[j]='-' then b:=true;

    end;

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

    if b[1,i] then a[1,i]:=1;

    for i:=2 to n do

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

    if b then

    begin

    a:=1;

    if (b) and (b) and (b) then

    a:=min(a,a,a)+1;

    end;

    l:=0;

    for i:=1 to n do

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

    if (a>l) and (j mod 2=1) then l:=a;

    if b[n,1] then a[n,1]:=1;

    for i:=n-1 downto 1 do

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

    if b then

    begin

    a:=1;

    if (b) and (b) and (b) then

    a:=min(a,a,a)+1;

    end;

    for i:=1 to n do

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

    if (a>l) and (j mod 2=0) then l:=a;

    writeln(l*l);

    end.

  • 0
    @ 2009-10-30 21:20:30

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我不是大牛,但我也能秒杀,YEAH!

  • 0
    @ 2009-10-28 17:52:16

    唉。。就是数组开小了,还用了小号。

  • 0
    @ 2009-10-26 19:19:13

    方程很简单,也很经典. 注意要ODD一下.

    WA了很久了,今天再做,发现是因为没初始化...当年的习惯不好啊!!!

  • 0
    @ 2009-10-18 21:39:52

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    O(∩_∩)O哈哈~

    1次ac+0ms 心情一天的阴霾全消散了

    仔细做还是不难的

    思路同 p1057 盖房子

    把等边三角形用‘#’补成矩形做

    注意上下两个方向

  • 0
    @ 2009-10-18 17:30:20

    編譯通過...

    ├ 測試數據 01:答案正确... 0ms

    ├ 測試數據 02:答案正确... 0ms

    ├ 測試數據 03:答案正确... 0ms

    ├ 測試數據 04:答案正确... 0ms

    ├ 測試數據 05:答案正确... 0ms

    ├ 測試數據 06:答案正确... 0ms

    ├ 測試數據 07:答案正确... 0ms

    ├ 測試數據 08:答案正确... 0ms

    ├ 測試數據 09:答案正确... 0ms

    ├ 測試數據 10:答案正确... 0ms

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

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

    下面那个LJ。。。

    一次 就A啦。。

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

    g:array[0..201,0..201]of longint;

    a:array[1..201,1..201]of longint;

    t,n,i,j,ans,kans:longint;

    ch:char;

    procedure init;

    begin

    for i:=n downto 1 do begin

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

    read(ch);

    if ch='-' then a:=0;

    end;

    readln;

    end;

    end;

    procedure work1;

    begin

    ans:=0;

    if a[1,n]=0 then f[1,n]:=1;

    for i:=2 to n do begin

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

    if a=0 then begin

    if (f+1)*2-1ans then ans:=f;

    g:=g+1;

    end;

    end;

    end;

    procedure work2;

    begin

    fillchar(f,sizeof(f),0);

    fillchar(g,sizeof(f),0);

    for i:=n downto 2 do begin

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

    if a=0 then begin

    if (f+2)*2-1ans then ans:=f;

    g:=g+1;

    end;

    end;

    end;

    procedure print;

    begin

    writeln(sqr(ans));

    end;

    begin

    readln(N);

    fillchar(a,sizeof(a),255);

    init;

    work1;

    work2;

    print;

    end.

    • @ 2015-10-27 10:53:34

      这程序能AC?那孙昊就日了狗了--

  • 0
    @ 2009-10-18 17:26:46

    編譯通過...

    ├ 測試數據 01:答案正确... 0ms

    ├ 測試數據 02:答案正确... 0ms

    ├ 測試數據 03:答案正确... 0ms

    ├ 測試數據 04:答案正确... 0ms

    ├ 測試數據 05:答案正确... 0ms

    ├ 測試數據 06:答案正确... 0ms

    ├ 測試數據 07:答案正确... 0ms

    ├ 測試數據 08:答案正确... 0ms

    ├ 測試數據 09:答案正确... 0ms

    ├ 測試數據 10:答案正确... 0ms

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

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

    交了15次 终于A了。

    狂错第2个点。。

  • 0
    @ 2009-10-18 10:13:07

    要是提高组出这种题。-,-

    不过没看几位提到的注意点我一定会WA吧。 - -

    第一次交就WA了9个。。。自己脑残了。。。

  • 0
    @ 2009-10-17 19:24:41

    记录号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R1611171 Accepted 100 From song19931218-

      P1063 FPC Vijos Sunny 2009-10-17 19:15:18

    From Tsuzuki

    迎春舞会之集体舞 迎春舞会 系列

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    题目不是很难。。。。

    同楼下的想法一样:细节处理很重要。。。

    求最大值时,分两种情况:

    1。上三角

    2。下三角

    (对于这两种三角形注意奇,偶判断)

    贴个DP方程:

    (每一行的第一个三角形的列坐标都处理为1,也可以不这样处理,个人习惯)

    对于上三角:

    F:((i,j)='-'则 a=1,否则a=0)

    1: if a=0 then f:=0;

    2: if a=0 then f:=1

    else f:=min(f,f);

    下三角的讨论与之类似,不再重复

  • 0
    @ 2009-10-10 22:08:17

    提交了4次才AC!

    细节很容易出错

    var

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

    f,g:array[1..200,1..200]of longint;

    a:array[1..200,1..200]of char;

    b:array[1..200,1..200]of boolean;

    function bein(i,j:longint):boolean;

    begin

    if (in)or(j2*n-i) then exit(false)

    else exit(true);

    end;

    function min(x,y:longint):longint;

    begin

    if xans) then ans:=find1(i,j);

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

    end;

    write(ans*ans);

    end.

  • 0
    @ 2009-10-07 20:16:48

    ...就是这么一道水题阻挡了我刷dp的进度...

    第1天:手机刷直接没有dp把每一行的'-'叠加了一遍

    if f>f then f:=f+2;这纯属玩笑之举..结果竟然过了4个点..

    第2天:想dp...用时2min...

    if f=1 then f:=min(min(f,f),f)+1;结果一激动输出打成writeln(max)了...0分...改过之后信心满满...结果wa掉90...第4个点没过...很生气以为又是puppy出问题了...又交了一遍依然90...

    看题解发现大牛说需要判断奇偶...于是立刻加入(odd(i+j-1))结果第4个点过了第7个点wa掉...在愤怒中上床...认为今年noip又得悲剧了..

    第3天:仔细研究了奇偶性的问题发现原来大牛读入的时候竟然读了空格!赶紧改成(odd(j))结果依然wa掉...无奈中决定开大数组改成[-110..300] of int64;!!!结果AC....厄...好吧我是沙茶...

  • 0
    @ 2009-10-07 15:17:06

    ... 数组开大点 开大点..

    Orz

  • 0
    @ 2009-10-01 20:39:05

    一次Ac三人组舞后,Rp骤降,居然交了四次。

    1。题目求人的个数。我交了个边长上去。

    2。忽略一个人的情况。

    3. 程序的测试信息没有删去。

    4. 居然发现题目要求的是穿夏季校服的。倒。

    总结: 好好审题,积累Rp,仔细做题。

  • 0
    @ 2009-09-20 16:22:58

    忽略了只有一个人的情况,WA了一次,遗憾啊

  • 0
    @ 2009-09-19 21:20:06

    上下两遍dp,一次ac

  • 0
    @ 2009-09-19 12:15:48

    这题太阴险了,第二组数据三角形中有空格,WA了5次,5次90分

  • 0
    @ 2009-09-09 23:48:29

    晕掉了....第一次没注意看题,把两种衣服分别算了一次,80分

    第二次不了解要组成三角形,90分

    第三次,看了大牛的题解,知道要上下分别搜一次,100分AC

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

    编译通过...

    ├ 测试数据 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:longint;a:array[0..100,0..200]of char; fb:array[0..101,0..202]of longint;procedure init; var i,j,t,k:longint;ch:char;begin readln(n); t:=n*2-1; for i:=1 to n do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=1 to k do read(ch); for j:=k+1 to k+2*(n-i+1)-1 do begin read(a); end; readln; end;end;function min(a,b,c:longint):longint;begin min:=a; if min>b then min:=b; if min>c then min:=c;end;procedure find; var k,i,j,t,x:longint;begin fillchar(fb,sizeof(fb),0); t:=n*2-1; for j:=1 to t do begin if a[1,j]='-' then fb[1,j]:=1 else fb[1,j]:=0; end; x:=1; for i:=2 to n do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=k+1 to k+2*(n-i+1)-1 do begin if a='-' then begin fb:=min(fb,fb,fb)+1; end else fb:=0; if (fb>x)and(odd(j-k)) then x:=fb; end; end; if a[n,n]='-' then fb[n,n]:=1 else fb[n,n]:=0; for i:=n downto 1 do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=k+1 to k+2*(n-i+1)-1 do begin if a='-' then begin fb:=min(fb,fb,fb)+1; end else fb:=0; if (fb>x) and(not(odd(j-k))) then x:=fb; end; end; writeln(sqr(x));end;begin init; find;end.

  • 0
    @ 2009-09-06 13:14:06

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    简单的DP

    很纠结。。

    简单题交4次才AC。。。

    第一次。。数组没开到200。。。

    第2次。。没考虑顶点的方向。。顶点应该是朝下的。。

    第3次。。ODD放错地方了。。。

    第4次。。才AC。。。

    80——》90——》20——》100。。。。

信息

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