题解

56 条题解

  • 0
    @ 2009-11-14 23:58:21

    通过这道题,练习了所有我会的非n^2性的排序:快速排序,二叉树排序,希尔排序,归并排序和桶排序,5种排序,5次提交,5次满分,AC率下降一格...

    思路很简单,将两个数组排序,排序后,一个数组从头开始,另一个数组从尾开始,

    两两做差,得到cha[]数组,再从cha[]的两头向中间,取较大的值,累加到sum中

    在程序中sum我用了double型,因为double的有效精度是最大的。

    在我提交的几个程序中,只有桶排是...0m...^_^...AC

    下面,贴一下我的几个程序(主程序基本一样,只有排序方法不同):

    (大家互相学习,但不要抄袭)

    我的QQ:865363864

    有编程爱好者想共同学习的与我联系

    快排法:

    #include

    long a1[100000],a2[100000],cha[100000],number,k;

    double sum=0;

    long partition(long going[],long from,long to)

    {

    long i=from,j=to;

    long temp=going[i];

    while(i

  • 0
    @ 2009-10-03 02:02:27

    可以证明:

    可以将选到的A序列中的数分为两个集合c,d,其中c中的元素=对应的b,且集合内要么是极大的|c|个数,要么是极小的|d|个数。

    然后考虑枚举c的大小i,然后用b中极大的i个数和-a众极小的i个数和+a中极大的k-i个数和-b中极小的k-i个数和。这样做有可能会枚举的b中极大的

  • 0
    @ 2009-10-02 17:43:05

    怎么这么快!

  • 0
    @ 2009-10-02 15:45:53

    占位

    顺便orz

  • 0
    @ 2009-10-02 15:36:26

    家具?

  • 0
    @ 2009-10-02 15:11:21

    踩场……

  • -1
    @ 2009-10-03 15:34:07

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    这是我比赛以来第一次AC的程序

    庆祝一下...虽然时间上有点牵强..

  • -1
    @ 2009-10-03 14:01:50

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    比赛中第一次得满分的程序,值得庆祝;

    题目比较水,就看细心了:

    快排+几个判断;

    两列数,每次挑其中一列中最大的,和另一列中最小的,在处理一下就AC了。

  • -1
    @ 2009-10-03 13:02:26

    怎么比赛时能秒杀,同一个程序,现在变这样了:

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    qsort*2

    数组加倍(对应前一半的相反数)

    1..k一个循环比较,输出最大

    AC^^^^^^!

  • -1
    @ 2009-10-03 10:22:47

    刚开始我用C++语言,然后就如下

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

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

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

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

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

    很勉强的锅了!

    接着我看着这么不争气的程序,心有不甘就换成了C语言的输入输出!于是乎:

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    C语言和C++语言差别就那么大么,

    到时去考复赛用什么语言好啊!

    难道叫我报C++语言,C语言的输入输出,天啊!

    我该怎么做啊!

  • -1
    @ 2009-10-03 10:20:36

    巨简单

    用l和r记录左边右边分别到哪里了。。一个一个取的去就可以了

  • -1
    @ 2009-10-03 09:53:36

    为什么我后面五个都输出0啊

  • -1
    @ 2009-10-03 09:46:40

    = =贪心贪错了,我巨菜

  • -1
    @ 2009-10-03 09:45:34

    估计这道题目的通过率不会低于75%

  • -1
    @ 2009-10-03 09:44:19

    贪就行了!

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

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var z1,z2,t,i,n,k,j:longint;a,b:array[0..100001]of longint;

    count:int64;

    procedure qsort2(l,r:longint);

    var i,j,x,t:longint;

    begin

    i:=l;j:=r;

    x:=b[(i+j) shr 1 ];

    repeat

    while b[i]>x do inc(i);

    while b[j]

  • -1
    @ 2009-10-03 09:37:26

    水题

    贪心我觉得除了【队一的头,队二的尾】,【队二的头,队一的尾】,还需要【队一的头,队二的头】,【队一的尾,队二的尾】比较...

信息

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