题解

111 条题解

  • 0
    @ 2009-07-27 15:06:00

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var row,col:array[1..1000,1..2] of integer;

    rerow,recol:array[1..1000] of integer;

    m,n,k,l,d,x1,y1,x2,y2,a,c:integer;

    p:boolean;

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

    begin

    if a

  • 0
    @ 2009-07-25 20:06:09

    100题纪念~~撒花!

  • 0
    @ 2009-07-21 19:16:30

    真的很简单。。只有一咪咪的麻烦。。。。。。。怎么pass的人这么少呢。。

  • 0
    @ 2009-07-20 19:57:36

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    要注意,最后输出时是要递增的,害得我傻了好久。但此题还是属于农夫山泉系列的。

    program ex;

    var n,m,k,l,d,i,j,t,w:longint;

    k1,k2,l1,l2,b,c:array[1..1000] of longint;

    a:array[1..2000,1..4] of longint;

    begin

    fillchar(k1,sizeof(k1),0);

    fillchar(l1,sizeof(l1),0);

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

    for i:=1 to d do

    readln(a,a,a,a);

    for i:=1 to d do

    begin

    if aa then

    if a

  • 0
    @ 2009-07-20 15:00:27

    要排序两次啊!!

  • 0
    @ 2009-07-19 15:50:02

    审题细心啊,输出序号是递增的!!!!(看输出格式)

    就因为这个。让我郁闷了一下午。。。。。。

  • 0
    @ 2009-07-19 04:34:01

    #include

    using namespace std;

    int m,n,k,l,d,a[ 3000 ][ 4 ],b[ 500 ] , c[ 500 ],t1[ 3000 ],t2[3000],tp1[ 3000 ],tp2[3000];

    int cmp(const void *a,const void *b)

    {

    return *(int*)a - *(int*)b;//return *(int*)b - *(int*)a;就是降序

    }

    int cmp2(const void *a,const void *b)

    {

    return *(int*)b - *(int*)a;

    }

    bool panchong(int *b,int p,int temp)

    {

    bool flag = 1 ;

    for(int i = 0 ; i > m >> n >> k >> l >> d;

    int p=0,f=0,temp;

    for(int i = 0 ; i < d ; i++)

    {

    cin >> a[ i ][ 0 ] >> a[ i ][ 1 ];

    cin >> a[ i ][ 2 ] >> a[ i ][ 3 ];

    if(a[ i ][ 0 ] == a[ i ][ 2 ])

    {

    temp = min(a[ i ][ 1 ] , a[ i ][ 3 ]);

    if(panchong(b,p,temp))

    {

    p++;

    b[ p ] = temp;

    t1[ temp ]=1;

    }

    else t1[ temp ]++;

    }

    if(a[ i ][ 1 ] == a[ i ][ 3 ] )

    {

    temp = min(a[ i ][ 0 ] , a[ i ][ 2 ]);

    if(panchong(c,f,temp))

    {

    f++;

    c[ f ] = temp;

    t2[ temp ] = 1;

    }

    else t2[ temp ]++;

    }

    }

    c[ 0 ] = b[ 0 ] = 0;

    for(int i = 1 ; i

  • 0
    @ 2009-07-16 10:01:01

    program dsa;

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

    tmp,col,row:array[1..1000] of longint;

    s,s1:ansistring;

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

    begin

    if ak do inc(i);

    while tmp[j]

  • 0
    @ 2009-07-02 21:02:14

    1次AC

    编译通过...

    ├ 测试数据 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级复杂度

    选择排序就够用:

    program temp;

    var

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

    a,b,ai,bi:array [1..1000] of integer;

    procedure swap(var u,v:integer);

    var

    t:integer;

    begin

    t:=u;

    u:=v;

    v:=t;

    end;

    begin

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

    for i:=1 to d do begin

    readln(x,y,p,q);

    if x-p=1 then inc(a[p]);

    if p-x=1 then inc(a[x]);

    if y-q=1 then inc(b[q]);

    if q-y=1 then inc(b[y]);

    end;

    for i:=1 to m do ai[i]:=i;

    for i:=1 to n do bi[i]:=i;

    for i:=1 to m-1 do

    for j:=i+1 to m do

    if a[i]bi[j] then swap(bi[i],bi[j]);

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

    writeln;

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

    readln;

    end.

    我好惨……

    一直在用turbo pascal……

  • 0
    @ 2009-06-29 19:25:49

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    很复杂的水题,第一次忘了把输出的排序了,一改AC,爽!!!

  • 0
    @ 2009-05-26 17:43:04

    var n,m,k,l,d,i,x1,y1,x2,y2,tk,tl,j,temp:integer;

    kk,ll:array[1..1000] of integer;

    fk,fl:array[1..1000] of integer;

    begin

    fillchar(kk,sizeof(kk),0);

    fillchar(ll,sizeof(ll),0);

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

    for i:= 1 to d do

    begin

    readln(x1,y1,x2,y2);

    if x1 = x2 then

    begin

    if y1 < y2 then inc(ll[y1])

    else inc(ll[y2]);

    end;

    if y1 = y2 then

    begin

    if x1 < x2 then inc(kk[x1])

    else inc(kk[x2]);

    end;

    end;

    tk:=0;

    tl:=0;

    for n:= 1 to 1000 do

    begin

    if ll[n] > 0 then begin inc(tl) ; fl[tl]:=n; end;

    if kk[n] > 0 then begin inc(tk) ; fk[tk]:=n; end;

    end;

    for i:= 1 to tk - 1 do

    for j:= i to tk do

    begin

    if kk[fk[i]] < kk[fk[j]] then

    begin

    temp:=fk[i];

    fk[i]:=fk[j];

    fk[j]:=temp;

    end;

    end;

    for i:= 1 to tl - 1 do

    for j:= i to tl do

    begin

    if ll[fl[i]] < ll[fl[j]] then

    begin

    temp:=fl[i];

    fl[i]:=fl[j];

    fl[j]:=temp;

    end;

    end;

    for i:= 1 to k - 1 do

    for j:= i to k do

    begin

    if fk[i] > fk[j] then

    begin

    temp:=fk[i];

    fk[i]:=fk[j];

    fk[j]:=temp;

    end;

    end;

    for i:= 1 to l - 1 do

    for j:= i to l do

    begin

    if fl[i] > fl[j] then

    begin

    temp:=fl[i];

    fl[i]:=fl[j];

    fl[j]:=temp;

    end;

    end;

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

    writeln(fk[k]);

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

    writeln(fl[l]);

    end.

    这题的数据还不至于用高级的排序

  • 0
    @ 2009-05-21 22:15:10

    行何列不要弄错,输入数据第一个是纵坐标,第二个才是横坐标

  • 0
    @ 2009-05-02 18:40:15

    此题输出时 需要再排序

  • 0
    @ 2009-04-24 21:48:38

    #include

    typedef struct {

    int start,num;

    } stu;

    #define min(x,y) ((x)=r) return;

    int i=l,j=r;

    stu p=a[l];

    while(i

  • 0
    @ 2009-04-24 18:36:28

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

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

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

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

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

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

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

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

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

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

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

    排序少排了一个害我教了5次。。。我的ac率呀。。。

  • 0
    @ 2009-04-06 12:15:58

    冒泡+找最大,水哗哗的~

    考试的时候却只有10分(只过了样例……),总结后发现——

    行和列貌似被我弄反了……

    大家不要犯我这样可怜的错……

  • 0
    @ 2009-04-05 19:31:33

    二分图匹配

    --zlq神牛

  • 0
    @ 2009-04-05 11:18:26

    太简单,冒泡就过了

    type ab=array[0..3000] of integer;

    var i,j,k,m,n,l,d,x1,y1,x2,y2,swap,n1,n2:longint;

    a1,a2,b1,b2:ab;

    begin

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

    fillchar(a1,sizeof(a1),0);

    fillchar(b1,sizeof(b1),0);

    for i:=1 to d do

    begin

    read(x1,y1,x2,y2);

    if y1=y2 then if x1b1[j-1] then

    begin

    swap:=b1[j];

    b1[j]:=b1[j-1];

    b1[j-1]:=swap;

    swap:=b2[j];

    b2[j]:=b2[j-1];

    b2[j-1]:=swap;

    end;

    end;

    n1:=k;

    n2:=l;

    for i:=k to m-1 do if a1[i]=a1 then inc(n1)

    else break;

    for i:=l to n-1 do if b1[i]=b1 then inc(n2)

    else break;

    for i:=1 to n1-1 do

    for j:=n1 downto i+1 do

    begin

    if a2[j]

  • 0
    @ 2009-03-22 10:46:45

    !!!!

  • 0
    @ 2009-03-17 15:38:30

    program vijos1498;

    type

    int=longint; bool=boolean;

    arr1010_int=array[0..1010]of int;

    arr1010_bool=array[0..1010]of bool;

    var

    n,m,h,c,p:int;

    used:arr1010_bool;

    hc,cc,tmp:arr1010_int;

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

    begin if amax) then begin

    max:=d[j]; p:=j;

    end;

    used[p]:=true; tmp[i]:=p;

    end;

    for i:=1 to n do

    for j:=i+1 to n do

    if tmp[j]

信息

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