题解

111 条题解

  • 0
    @ 2009-10-07 16:11:26

    暴力查找竟然秒杀……

  • 0
    @ 2009-10-04 15:39:43

    居然忘了把测试的输出delete掉就提交……

  • 0
    @ 2009-09-23 01:52:50

    不断的排序就能出解了

    编译通过...

    ├ 测试数据 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-09-20 10:09:30

    program seat(input,output);

    var x,y,p,q,m,n,k,l,d,i,xx,zd:longint;

    h,ll:array [0..1001] of longint;

    boo:array [0..1001] of boolean;

    begin

    readln(m,n,k,l,d);

    for i:=1 to m do

    h[i]:=0;

    for i:=1 to n do

    ll[i]:=0;

    for i:=1 to d do

    begin

    readln(x,y,p,q);

    if x=p

    then if yll[zd]

    then zd:=xx;

    boo[zd]:=true;

    ll[zd]:=0;

    end;

    i:=1;

    while not boo[i] do

    i:=i+1;

    write(i);

    for i:=i+1 to n do

    if boo[i]

    then write(' ',i);

    writeln;

    end.

    唉……我当时考的时候怎么做的就没这么好呢!

  • 0
    @ 2009-09-13 11:14:38

    program p1498;

    var x,y,a,b:array[1..2000] of longint;

    i,j,k,m,n,l,p,q,r,s,t:longint;

    procedure qsort(p,q:longint);

    var l,r,g,t,s:longint;

    begin

    t:=x[(p+q) div 2];l:=p;r:=q;

    s:=a[(p+q) div 2];

    repeat

    while (x[l]>t) or ((x[l]=t) and (a[l]

  • 0
    @ 2009-09-12 19:56:13

    program seat;

    var

    a,b,c,z:array[1..2000]of integer;

    s,x,y,p,v,i,j,k,m,n,l,d,o,w,q:integer;

    begin

    readln(m,n,k,l,d);

    for i:=1 to d do begin

    read(x,y,p,q);

    if (x=p)and(y>q)then inc(a[q]);

    if (x=p)and(yp)and(y=q)then inc(c[p]);

    if (x

  • 0
    @ 2009-08-26 20:06:38

    数组存储每条通道阻止讲话学生的组数

    排序

    根据编号排序

    输出

  • 0
    @ 2009-08-26 12:22:51

    H2O

  • 0
    @ 2009-08-22 15:09:50

    编译通过...

    ├ 测试数据 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-11 22:33:36

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    type st=record date:longint; num:longint; end;

    var

    f,f2:array[1..2000] of st;

    n,m,k,l,d,x,y,xx,yy,i:longint;

    procedure qsortA(l,r:longint);

    var i,j,mid:longint;

    t:st;

    begin

    i:=l;j:=r;mid:=f[(l+r) div 2].date;

    repeat

    while f[i].date>mid do inc(i);

    while f[j].date

  • 0
    @ 2009-08-11 21:02:04

    Program P1498;

    type ay=array[0..10000] of integer(用 LONGINT 居然202错误,WA了一次);

    var lay,kay,b,c:ay;

    x,y,x1,y1,m,n,k,l,d,i,j:longint;

    procedure qsort(s,t:longint;a:ay);

    var temp,i,j,mid:longint;

    begin

    i:=s; j:=t; mid:=a[(i+j) div 2];

    repeat

    while a[i]>mid do inc(i);

    while a[j]

  • 0
    @ 2009-08-08 09:07:25

    没排序,最原始的,照样秒杀,不过当年,想小乔初嫁,我竟然没作出,痛苦啊!

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

    var m,n,k,l,d,x,y,p,q,i,j,xx,jj:integer;

    a,b,al,bl:array[1..1000] of integer;

    begin

    readln(m,n,k,l,d);

    for i:=1 to 1000 do begin a[i]:=0;b[i]:=0;al[i]:=0;bl[i]:=0;end;

    for i:=1 to d do

    begin

    readln(x,y,p,q);

    if x=p then if yxx then begin xx:=a[i];jj:=i; end;

    al[jj]:=1;a[jj]:=0;xx:=0;

    end;

    for i:=1 to n do if al[i]=1 then jj:=i;

    for i:=1 to jj-1 do if al[i]=1 then write(i,' ');writeln(jj);

    end.

  • 0
    @ 2009-08-07 15:50:01

    51行秒杀!

    貌似这题数据用不着快排?

    那就更短…………

    program p1498;

    type arr=array[1..2000] of record num,sum:longint; end;

    var m,n,k,l,d,xi,yi,pi,qi,i,j,p:longint;

    a,b:arr;

    procedure qsort(b,e:longint;var x:arr);

    var i,j,mid,t,s:longint;

    begin

    i:=b; j:=e;

    mid:=x[random(j-i+1)+i].sum;

    repeat

    while x[i].sum>mid do inc(i);

    while x[j].sumqi then begin inc(b[qi].sum); b[qi].num:=qi; end

    else begin inc(b[yi].sum); b[yi].num:=yi; end

    else if xi>pi then begin inc(a[pi].sum); a[pi].num:=pi; end

    else begin inc(a[xi].sum); a[xi].num:=xi; end;

    end;

    randomize;

    qsort(1,n-1,b);

    qsort(1,m-1,a);

    for i:=1 to k-1 do

    for j:=i+1 to k do

    if a[i].num>a[j].num then

    begin p:=a[i].num; a[i].num:=a[j].num; a[j].num:=p; end;

    for i:=1 to l-1 do

    for j:=i+1 to l do

    if b[i].num>b[j].num then

    begin p:=b[i].num; b[i].num:=b[j].num; b[j].num:=p; end;

    for i:=1 to k do write(a[i].num,' ');

    writeln;

    for i:=1 to l do write(b[i].num,' ');

    end.

  • 0
    @ 2009-08-06 20:42:19

    My God!!48行的程序!!!

    比前面的前辈短一点。。。。。

    第一次,没把答案排序。。。。。10分。。。。

    编译通过...

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

    ├ 测试数据 02:答案错误...

     ├ 标准行输出 1 2 4...

     ├ 错误行输出 1 4 5...

    ├ 测试数据 03:答案错误...

     ├ 标准行输出 1 3 4...

     ├ 错误行输出 12 19...

    ├ 测试数据 04:答案错误...

     ├ 标准行输出 1 2...

     ├ 错误行输出 8 1...

    ├ 测试数据 05:答案错误...程序输出比正确答案长

    ├ 测试数据 06:答案错误...

     ├ 标准行输出 1 3...

     ├ 错误行输出 3 47...

    ├ 测试数据 07:答案错误...

     ├ 标准行输出 1 3...

     ├ 错误行输出 51 6...

    ├ 测试数据 08:答案错误...

     ├ 标准行输出 5 17...

     ├ 错误行输出 124...

    ├ 测试数据 09:答案错误...程序输出比正确答案长

    ├ 测试数据 10:答案错误...程序输出比正确答案长

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

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

    第二次。。。。

    排了序。。。。。。

    10->100。。。。。。。

    乘方。。。

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ========================晒程序=========================

    var

    u,a,ANS:array[0..3001] of integer;

    m,n,k,l,d,i,j,x0,x1,y0,y1:integer;

    procedure swap(var a,b:integer);

    var t:longint;

    begin

    t:=a;

    a:=b;

    b:=t;

    end;

    begin

    readln(m,n,k,l,d);

    for i:=1 to d do begin

    readln(x0,y0,x1,y1);

    if x0=x1 then begin

    inc(a[((y0+y1-abs(y0-y1))shr 1)+m]);

    end else begin

    inc(a[(x0+x1-abs(x0-x1))shr 1]);

    end;

    end;

    for i:=1 to m+n do u[i]:=i;

    for i:=1 to m+n do

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

    if a[u[i]]m do inc(j);

    ans[i]:=u[j];

    inc(j);

    end;

    for i:=1 to k do

    for j:=i+1 to k do

    if ans[i]>ans[j] then swap(ans[i],ans[j]);

    for i:=1 to k do write(ans[i],' ');

    writeln();

    j:=1;

    for i:=1 to l do begin

    while u[j]ans[j] then swap(ans[i],ans[j]);

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

    writeln();

    end.

  • 0
    @ 2009-08-03 19:56:26

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我用53行

    桶排秒杀

  • 0
    @ 2009-08-02 11:26:47

    我才62行,貌似不用146行

  • 0
    @ 2009-08-01 23:45:09

    仁兄啊,这道题目需要146行?

    你太伟大了~~~!!~~~

  • 0
    @ 2009-07-29 10:39:40

    var

    t,m,n,k,l,d,x,y,p,q,i,j,s:longint;

    a,b,e:array[0..20000] of longint;

    begin

    readln(m,n,k,l,d);

    for i:=1 to d do

    begin

    readln(x,y,p,q);

    if y=q then if x>p then a[p]:=a[p]+1

    else a[x]:=a[x]+1

    else if y>q then b[q]:=b[q]+1

    else b[y]:=b[y]+1;

    end;

    for i:=1 to m do

    if a[i]>0 then begin

    s:=s+1;

    e:=i;

    end;

    for i:=1 to s-1 do

    for j:=i+1 to s do

    if a[e[i]]e[j] then begin

    t:=e[i];e[i]:=e[j];e[j]:=t;

    end;

    for i:=1 to k-1 do

    write(e[i],' ');

    writeln(e[k]);

    s:=0;

    fillchar(e,sizeof(e),0);

    for i:=1 to n do

    if b[i]>0 then begin

    s:=s+1;

    e:=i;

    end;

    for i:=1 to s-1 do

    for j:=i+1 to s do

    if b[e[i]]e[j] then begin

    t:=e[i];e[i]:=e[j];e[j]:=t;

    end;

    for i:=1 to l-1 do

    write(e[i],' ');

    write(e[l]);

    end.

    仔细再仔细~

    哎~

    闯荡江湖多年,还是改不了仔细这个毛病.

    注意啊~注意..

    输出时按递增.

    汗~第一次由于没递增,只得了10分.

    汗死..

  • 0
    @ 2009-07-29 09:22:28

    那时因为输出问题,我们倒地一片。。。

    幸好。。压线一等。。。

  • 0
    @ 2009-07-28 18:57:49

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ....秒掉....记得当时打了100+line才过的.....现在70+....唉...那时太菜了...

信息

ID
1498
难度
5
分类
贪心 点击显示
标签
递交数
4079
已通过
1539
通过率
38%
被复制
20
上传者