题解

56 条题解

  • 0
    @ 2009-10-04 08:41:32

    a,b,c:array[0..1010]of longint;

    悲剧50。

    a,b,c:array[0..101010]of longint;

    无语100.

  • 0
    @ 2009-10-03 22:41:16

    其中p序列中的元素两两不相同,q序列中的元素两两不相同

    我去掉重复后,只得了10分。

    忽略则AC,谁来解释下

  • 0
    @ 2009-10-03 19:59:03

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ---| 第1题 ---|---|---|---|---|---|---|---|---|---|---|--

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    为啥我考试就不是秒杀。。。一模一样的程序。。。

    悲剧啊,看来rp就是差。。。

    题很水。。

    qsort*2+找两头(问题在这么。。。)

    我整个人瞬间傻了。。。

    我是小菜。。。

    //i love puppy

    //made by Cccola

  • 0
    @ 2009-10-03 16:43:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    晕,比赛的时候就是想不到,吐死了

  • 0
    @ 2009-10-03 16:06:54

    求助啊!为什么lld 50分,cout就Ac啊!

  • 0
    @ 2009-10-03 15:36:39

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    VIJOS SUNNY……

    9MS……这让我压力很大……

    最近今天真RP……这回居然连Quicksort都没能一遍写对……

  • 0
    @ 2009-10-03 15:28:57

    抑郁,提交的时候把排序好的数列输出来了...

    0分额...

    现在...

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program T1050;

    type arr=array [1..100000] of longint;

    var a,b:arr;

    n,k,i,la,ra,lb,rb:longint;

    ans:int64;

    procedure qsort(l,r:longint;var s:arr);

    var i,j,mid,swap:longint;

    begin

    i:=l;

    j:=r;

    mid:=s[(l+r) div 2];

    repeat

    while s[i]mid do dec(j);

    if not (i>j) then

    begin

    swap:=s[i];

    s[i]:=s[j];

    s[j]:=swap;

    inc(i);

    dec(j);

    end;

    until i>j;

    if labs(a[ra]-b[lb]) then

    begin

    ans:=ans+abs(a[la]-b[rb]);

    inc(la);

    dec(rb);

    end

    else

    begin

    ans:=ans+abs(a[ra]-b[lb]);

    inc(lb);

    dec(ra);

    end;

    end;

    writeln(ans);

    end.

  • 0
    @ 2009-10-03 14:11:01

    #include

    #include

    #include

    #define maxn 100001

    int cmp1(const void *a,const void *b){

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

    }

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

    return -cmp1(a,b);

    }

    long N,K,A[maxn],B[maxn];

    long long Ans=0;

    int main(void){

    long i,l,r;

    scanf("%ld%ld",&N,&K);

    for (i=1;i

  • 0
    @ 2009-10-03 13:31:30

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program gl_1;

    type

    arr=array[1..100000] of longint;

    var

    a,b,c:arr;

    i,n,kk,k,j:longint;

    max:int64;

    procedure qsort(var w:arr;l,r:longint);

    var

    i,j,mid,temp:longint;

    begin

    i:=l;

    j:=r;

    mid:=w[(i+j) div 2];

    repeat

    while w[i]< mid do

    inc(i);

    while w[j]> mid do

    dec(j);

    if ij;

    if l

  • 0
    @ 2009-10-03 12:53:48

    水啊。。。

    可惜比赛时。。打错一个字母。。。。0分。。。哭。。。

    对A,B分别从小到大排序。。

    比较(A尾-B头)和(B尾-A头)的大小。取大的。。

    一直取。。

    直到取满K个。

    题解 http://254117343.blog.163.com/

  • 0
    @ 2009-10-03 11:32:21

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

    为什么我这么沙茶,这么简单的题目还要看题解才会做......

    看来以前为了刷题一拿到题目就看题解的习惯是错的......

    不过好像在VIJOS上题解里有很多关于题目的WS的地方...

  • 0
    @ 2009-10-03 11:12:09

    贪心水题、、、

  • 0
    @ 2009-10-03 10:25:26

    考试时贪心居然写错了!!

  • 0
    @ 2009-10-03 09:32:42

    其实printf 要用 %lld

  • 0
    @ 2009-10-03 09:18:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var x:int64; i,n,k,i1,i2,j1,j2:longint;

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

    procedure qsort1(l,r:longint);

    var i,j,x,t:longint;

    begin

    i:=l; j:=r; x:=a[(i+j) div 2];

    repeat

    while a[i]x do dec(j);

    if ij;

    if il then qsort1(l,j);

    end;

    procedure qsort2(l,r:longint);

    var i,j,x,t:longint;

    begin

    i:=l; j:=r; x:=b[(i+j) div 2];

    repeat

    while b[i]x do dec(j);

    if ij;

    if il then qsort2(l,j);

    end;

    begin

    readln(n,k);

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

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

    qsort1(1,n);

    qsort2(1,n);

    i1:=1;

    i2:=1;

    j1:=n;

    j2:=n;

    x:=0;

    for i:=1 to k do

    begin

    if abs(a[i1]-b[j2])>abs(a[j1]-b[i2]) then

    begin

    inc(x,abs(a[i1]-b[j2]));

    inc(i1);

    dec(j2);

    end

    else

    begin

    inc(x,abs(a[j1]-b[i2]));

    inc(i2);

    dec(j1);

    end;

    end;

    writeln(x);

    end.

    Flag    Accepted

    题号   P1662

    类型(?)   其它

    通过   67人

    提交   79次

    通过率   85%

    难度   0

    又AC了

  • 0
    @ 2009-10-03 07:51:31

    通过   32人

    提交   40次

    通过率   80%

  • 0
    @ 2009-10-03 07:39:32

    我晕了

  • 0
    @ 2009-10-03 07:21:26

    解法:贪心 每次选A、B数组里差最大的两个数(方法是先两数组排序 每次进行A的头和B尾的差和A尾B头的差比较 选出较大的)

    PS:2次快排+模拟居然没秒杀 鄙视一下Sunny评测机 每次都这么慢……

  • 0
    @ 2009-10-03 07:03:04

    农夫山泉

  • 0
    @ 2009-10-03 06:59:58

    哪那么麻烦。

    说白了:

    a升序,b降序,用快排,取两头。

    PS.此题即将成为超越a+bproblem的一道经典水题,通过率常年稳定在60%+

信息

ID
1662
难度
4
分类
贪心 点击显示
标签
(无)
递交数
2307
已通过
946
通过率
41%
被复制
5
上传者