106 条题解
-
-1xjdx LV 6 @ 2006-11-01 21:04:45
这题目出得非常的好
个人觉得。。。
4次才过如果w[i]中有若干个量相同,那么这若干个量在第一遍排序后位置不同对结果也会有影响,那么必须把排序以后的序列中的相同数列段再次进行快排
并且切记 第一次排序 也是编号小的排前面
-
-12006-11-01 19:22:41@
如果w[i]中有若干个量相同,那么这若干个量在第一遍排序后位置不同对结果也会有影响,这个该怎么考虑?
-
-12006-11-01 19:16:46@
错误号:128 是什么错误???
-
-12006-11-01 17:40:11@
狂汗...快排竟然写错..浪费通过率= =|||
-
-12006-11-01 16:21:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms非常感谢makingzeng~~~ 终于AC了~
heapsort 阿~ 太稳了~ -
-22016-06-24 20:52:40@
我擦!!这题目描述。。。醉了!是一开始就有编号了 (= =)
AC 111纪念!!
测试数据 #0: Accepted, time = 0 ms, mem = 1392 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 1392 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 1388 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 1388 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 1388 KiB, score = 10
测试数据 #5: Accepted, time = 31 ms, mem = 1388 KiB, score = 10
测试数据 #6: Accepted, time = 15 ms, mem = 1388 KiB, score = 10
测试数据 #7: Accepted, time = 15 ms, mem = 1388 KiB, score = 10
测试数据 #8: Accepted, time = 31 ms, mem = 1388 KiB, score = 10
测试数据 #9: Accepted, time = 46 ms, mem = 1388 KiB, score = 10
Accepted, time = 138 ms, mem = 1392 KiB, score = 100
---------------------------华丽的分割线---------------------------
```pascal
type int=longint;
var
n,k,i:int;
a,b,d:array[0..50001]of int;
procedure qsort(l,r:int);
var
i,j,p,t,m:int;
begin
i:=l; j:=r; p:=a[(l+r) div 2]; m:=d[(l+r) div 2];
repeat
while (a[i]>p) or ((a[i]=p)and(d[i]<m)) do inc(i);
while (a[j]<p) or ((a[j]=p)and(d[j]>m)) do dec(j);
if i<=j then
begin
t:=a[i]; a[i]:=a[j]; a[j]:=t;
t:=d[i]; d[i]:=d[j]; d[j]:=t;
inc(i);
dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if l<j then qsort(l,j);
end;begin
readln(n,k);
for i:=1 to 10 do read(b[i]);
for i:=1 to n do read(a[i]);
for i:=1 to n do d[i]:=i;
qsort(1,n);
for i:=1 to n do a[i]:=a[i]+b[(i-1) mod 10+1];
qsort(1,n);
if k=0 then halt;
write(d[1]);
for i:=2 to k do write(' ',d[i]);
writeln;
end.
```
我在秋名山等你!!!