题解

536 条题解

  • 0
    @ 2009-10-10 18:41:37

    太悲哀了,这已经是我第n次把heapsort写挂了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 0
    @ 2009-10-08 12:23:38

    堆~~~

    编译通过...

    ├ 测试数据 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-10-05 19:04:54
  • 0
    @ 2009-10-05 08:47:10

    此题有类似DP的利用桶排的O(n)算法~而且思路简单,易懂

  • 0
    @ 2009-09-22 16:59:46

    什么快排、堆排,我就用冒泡!

    冒泡最稳定!冒泡最好写!而且O(N方)在绝大多数情况下都能接受

    为什么基础算法就受歧视呢??

  • 0
    @ 2009-09-21 17:23:52

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    快排+插排。。。。。。

    但为什么我在本机上一直无输出。。。

    结果,我晾了它2天就AC了呢?。。。

  • 0
    @ 2009-09-19 16:15:07

    dp

  • 0
    @ 2009-09-18 18:19:08

    1097解题报告 步步都要说明 可读性超高的程序

    尽在

    http://wwzhwdwd.blog.163.com/blog/static/128151450200981854734255

  • 0
    @ 2009-09-17 20:14:53

    第一次提交fillchar放在了读入后面结果一堆0 WA掉了。。。。。。

    编译通过...

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

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

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

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

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

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

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

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

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

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

    var

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

    n:integer;

    ans:longint;

    procedure init;

    var

    i:integer;

    begin

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

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

    readln(n);

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

    readln;

    end;

    procedure qsort(l,r:integer);

    var

    i,j:integer;

    temp:longint;

    x:longint;

    begin

    x:=a[(l+r)shr 1];

    i:=l;

    j:=r;

    repeat

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

    if ij;

    if l

  • 0
    @ 2009-09-17 18:47:26

    var

    a:array[0..10000] of longint;

    total,temp:longint;

    sss,n,i,j,t:longint;

    procedure kuaipai(s,t:longint);

    var

    i,j,x,t1:longint;

    begin

    i:=s;

    j:=t;

    x:=a[i];

    repeat

    while (a[j]i) do j:=j-1;

    if j>i then

    begin

    t1:=a[i];

    a[i]:=a[j];

    a[j]:=t1;

    end;

    while (a[i]>=x) and (i

  • 0
    @ 2009-09-16 18:45:51

    呜啊呜啊喔,.....死给哦

  • 0
    @ 2009-09-07 23:03:50

    从来都只会堆排、、、、

    快排用都没用过、、用也不会用、、啊萎哉、、

  • 0
    @ 2009-09-07 19:47:21

    program guozi;

    var a:array[1..10002] of longint;

    temp,n,i,j,k,s,t:longint;

    procedure heap (s,n:longint);

    var i,j,k:longint;

    begin

    while jmaxint do begin

    i:=a; j:=maxint;

    if s*2

  • 0
    @ 2009-09-07 19:30:58

    分析:本题练习堆排序

    从题中可以很清楚的发现,要是花费体力最小,则每次要将最小的2堆合并,即使得大堆搬运的次数最少。所以堆可以很好的实现这个要求,每次从小根堆中取堆顶元素,就能得到当前最小堆,然后将运算结果存入堆中,继续计算。

    步骤:

    1. 输入数据

    2. 初始化堆,从n div 2到1进行调整堆。建立一个小根堆。

    3. 重复以下步骤,直至n=1,即堆中不超过1个元素了。取堆顶h[1]元素存入a,将堆尾h[n]元素调到堆顶,调整堆;再取堆顶元素存入b,运算c=a+b。并将c存入堆顶h[1],并将节点数减一。即dec(n)减少无效运算。

  • 0
    @ 2009-09-04 22:06:26

    双列队 秒杀

    var

    n,i,j,k,ha,hb,ta,tb,x,y:longint;

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

    z:longint;

    procedure sort(l,r:integer);

    var

    i,j,x,y:integer;

    begin

    i:=l;j:=r;

    x:=a[(l+r) shr 1];

    repeat

    begin

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

    if ij;

    if l

  • 0
    @ 2009-08-28 16:47:11

    编译通过...

    ├ 测试数据 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-20 19:56:07

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var n,i,j,t:longint;

    a:Array[0..10000] of int64;

    sum,ss,k:int64;

    pan:boolean;

    function min(s,t:longint):longint;

    begin

    min:=s;

    if a[t]

  • 0
    @ 2009-08-18 15:52:07

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    先快排,后插入,能AC我已经很欣慰了……

  • 0
    @ 2009-08-17 08:57:42

    找最小值用堆维护就行了

    复杂度是nlogn

  • 0
    @ 2009-08-16 20:02:44

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    秒了

    但是打错个字母

    交了好几遍。。。 。。。

    堆排

    var n,i,j,t:longint;

    a:Array[0..10000] of int64;

    sum,ss,k:int64;

    pan:boolean;

    function min(s,t:longint):longint;

    begin

    min:=s;

    if a[t]

信息

ID
1097
难度
6
分类
贪心 点击显示
标签
递交数
23921
已通过
6339
通过率
26%
被复制
41
上传者