536 条题解
-
0
song19931218 LV 9 @ 2009-10-10 18:41:37
太悲哀了,这已经是我第n次把heapsort写挂了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
-
02009-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 -
02009-10-05 19:04:54@
-
02009-10-05 08:47:10@
此题有类似DP的利用桶排的O(n)算法~而且思路简单,易懂
-
02009-09-22 16:59:46@
什么快排、堆排,我就用冒泡!
冒泡最稳定!冒泡最好写!而且O(N方)在绝大多数情况下都能接受
为什么基础算法就受歧视呢?? -
02009-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了呢?。。。 -
02009-09-19 16:15:07@
dp
-
02009-09-18 18:19:08@
1097解题报告 步步都要说明 可读性超高的程序
尽在
http://wwzhwdwd.blog.163.com/blog/static/128151450200981854734255 -
02009-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:答案正确... 0msvar
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 -
02009-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 -
02009-09-16 18:45:51@
呜啊呜啊喔,.....死给哦
-
02009-09-07 23:03:50@
从来都只会堆排、、、、
快排用都没用过、、用也不会用、、啊萎哉、、 -
02009-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 -
02009-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)减少无效运算。 -
02009-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 -
02009-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
本题洪水啊!!! -
02009-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 有效耗时:0msvar 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] -
02009-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我已经很欣慰了……
-
02009-08-17 08:57:42@
找最小值用堆维护就行了
复杂度是nlogn -
02009-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]