170 条题解

  • 0
    @ 2008-11-04 21:24:35

    强烈建议A掉Dophin,同样的程序,第一遍超3个,第二遍秒杀

  • 0
    @ 2008-11-03 19:05:18

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    数据太贱了。。。。。。。。。。害的我白白交了5次

  • 0
    @ 2008-11-03 11:06:58

    数据范围。。。。太jian了。。。

    for i:=1 to n do

    begin

    read(num);

    while tot

  • 0
    @ 2008-11-01 14:57:28

    阿东VS燕麦 水题5分钟搞定AC

    var

    n,i,j:integer;

    r,w:array[0..1501]of longint;

    m:int64;

    begin

    readln(n);

    for i:=1 to n do read(r[i]); readln;

    m:=r[n];

    for i:=n downto 1 do

    begin

    if r[i]=r then begin w[i]:=m; dec(m); end

    else w[i]:=1;

    end;

    for i:=1 to n do write(w[i],' '); readln;

    end.

    推公式吗~多亏了ysyjack

  • 0
    @ 2008-10-30 20:19:12

    20行不到的水题目又刷了一题

    ··

  • 0
    @ 2008-10-29 13:24:05

    POJ 1068的缩水版

    #include

    #include

    #define maxlen 100000

    long n,t;

    char seq[maxlen+10],_did;

    int main()

    {

    long o,i,j,x,lst,cnt,num,deep,ans;

    // scanf("%ld",&t);

    t=1;

    for(o=1;o

  • 0
    @ 2008-10-28 21:01:54

    by jaly;

    var b:array[1..20000] of boolean;//第b[i]个男的有无舞伴

    read(a[i]);//左边的男生人数

    for j:=a[i] downto 1 do//倒着找到第一个没有舞伴

    if not b[j] then

    begin

    b[j]:=true;

    write(a[i]-j+1,' ');//隔几个男的

    break;

    end;

    end;

    end.

    15行不到..AC了..

  • 0
    @ 2008-10-27 16:36:55

    一开始O(n)的程序很神奇的TLE了,困惑……

  • 0
    @ 2008-10-26 15:34:55

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-19 20:42:45

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    小心数据范围哦!

  • 0
    @ 2008-10-19 12:15:05

    给的范围有误,最后的两个数据的N大于1500,害我白白WA一次,我的AC率~~~

  • 0
    @ 2008-10-16 16:25:48

    数组开了2W,AC,水题

  • 0
    @ 2008-10-13 00:24:57

    var f:array[1..50000,1..2]of integer;

    s:array[1..50000,1..2]of integer;

    l:array[1..50000]of integer;

    i,j,n,t1,t2,m:longint;

    begin

    readln(n);

    for i:=1 to n do begin read(f);f:=i;end;

    for i:=1 to n-1 do

    for j:=i+1 to n do

    if f>f[j,1] then

    begin

    t1:=f;f:=f[j,1];f[j,1]:=t1;

    t2:=f;f:=f[j,2];f[j,2]:=t2;

    end; j:=0;m:=0;

    for i:=1 to n do

    begin

    while mf do

    begin

    inc(j);if s[j,1]=0 then inc(m);

    end;

    inc(j);

    s[j,1]:=1;s[j,2]:=f;

    end;

    for i:=1 to 2*n do

    if s=1 then

    begin m:=1;

    for j:=i-1 downto 1 do

    begin

    if s[j,1]=-1 then inc(m);

    if s[j,1]=0 then begin l[s]:=m;s[j,1]:=-1;break;end;

    end;end;

    for i:=1 to n-1 do write(l[i],' ');writeln(l[n]);

    end.

    这样写有错吗?

  • 0
    @ 2008-10-03 17:23:12

    19行,GCC,搞定~~

    #include

    main()

    {

    static int stackboy[5000],temp[5000],result[5000];

    int n,i,j,boy=0;

    temp[0]=0;

    scanf("%d",&n);

    for(i=1;i

  • 0
    @ 2008-10-03 17:21:53

    模拟栈就可以了,栈里面放boy及记录boy的距离,没来一个girl就pop,距离都加一.

  • 0
    @ 2008-09-29 18:33:27

    不懂的看这个 ")"代表女生 "(" 代表男生

    注意这个条件:②任何一对舞伴之间,要么没有人,要么就有若干对舞伴。

    就是说"()"是成对的

    拿4 5 6666 为例,可知第一个')' 前面有四个'(' ,按照栈的规则,说明第一个')'与第四个'(' 匹配,同理第二个 ')' 与 第五个 '(' 匹配,第三个')' 与第六个 '(' 匹配,

    在看第四个,由于第六个'('、第五个'('、第四个'('、已经被匹配,所以第四个')' 应该是和

    第三个'(' 匹配,以此类推。。。。用一个数组保存的匹配的结果(match[]),

    4 5 6 6 6 6 6

    匹配结果:4 5 6 3 2 1 ,再以 3 为例,因为在这个')'之前的第四个'('、五个'('、第六个'('已经被匹配,每一次匹配是一个')', 加上本身 所以结果应该是 6-3+1,以此类推结果就出来了。。。 ^_^

  • 0
    @ 2008-09-18 16:48:56

    注意范围!

  • 0
    @ 2008-09-16 11:39:31

    同志门注意数组范围啊····

  • 0
    @ 2008-09-14 10:27:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    注意范围!

  • 0
    @ 2008-09-13 09:40:29

    See POJ1068

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1068

    数据问题,数组开到50000AC

    var

    i,j,k,x,y,z:longint;

    n,bt:longint;

    s:ansistring;

    a,b:array[1..50000]of longint;

    aaa,aab:longint;

    begin

    readln(n);

    s:='';

    y:=0;

    for i:=1 to n do begin

    read(x);

    for j:=1 to x-y do

    s:=s+'(';

    y:=x;

    s:=s+')'

    end;

    n:=length(s);

    x:=0;

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

    bt:=0;

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

    for i:=1 to n do begin

    if s[i]='(' then begin

    inc(x);

    a[x]:=i;

    end else begin

    y:=a[x];

    z:=0;

    for j:=y to i do

    if s[j]=')' then inc(z);

    inc(bt);

    b[bt]:=z;

    a[x]:=0;

    dec(x);

    end;

    end;

    for i:=1 to bt-1 do

    write(b[i],' ');

    writeln(b[bt])

    end.

    我是纯模拟

信息

ID
1062
难度
4
分类
数据结构 | 点击显示
标签
递交数
3524
已通过
1406
通过率
40%
被复制
12
上传者