163 条题解
-
0zero LV 3 @ 2008-10-04 20:27:33
数据范围绝对有问题de说。。。(╰_╯)
大家都放心大胆地改500000吧。。。-_-! -
02008-10-01 10:48:20@
我居然WA了两边……快排多了就会乱套……qsort1...qsort2...qsort3...@%$%@水题多了就会变成大海。
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
三次快排居然都秒杀 while 1+1=2 do inc(RP);
赞美 lora templer -
02008-09-30 09:57:51@
3次快排 秒杀掉
自己感觉麻烦了 不知有没有更简单的方法 -
02008-09-26 16:13:54@
我原来开100000 80分啊
开成500000 就AC了
什么破数据啊
var
a,b,c,f:array[1..500000]of longint;
i,j,k,p,n,m:longint;
procedure sort(l,r: longint);
var
i,j,x,y: longint;
begin
i:=l; j:=r; x:=a[(l+r) div 2];
repeat
while a[i]>x do inc(i);
while x>a[j] do dec(j);
if not(i>j) then
begin
y:=a[i]; a[i]:=a[j]; a[j]:=y;
inc(i); dec(j);
end;
until i>j;
if lb[j] do dec(j);
if not(i>j) then
begin
y:=b[i]; b[i]:=b[j]; b[j]:=y;
y:=c[i]; c[i]:=c[j]; c[j]:=y;
inc(i); dec(j);
end;
until i>j;
if l -
02008-09-25 17:40:40@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-24 15:39:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms两个猥琐的快排
然后就是累加
测试官方数据时发现
貌似输出最后要加一个空格
我把加空格后的程序发上来
过了
不知道不加会不会过
为了AC
大家慎重考虑
-
02008-09-23 15:39:31@
var
a,b,c,d:array[1..1000000] of longint;
s,x,y,i,j,k,l,p,n,m:longint;
procedure qsort(l,r:longint);
var
i,j,k,t,mid:longint;
begin
mid:=a[(l+r) shr 1];
i:=l;
j:=r;
repeat
while a[i]mid do dec(j);
if ij;
if il then qsort(l,j);
end;begin
read(n,m);
for i:=1 to n do
read(A[i]);
qsort(1,n);
for i:=1 to m do
begin
read(b[i]);
c[i]:=b[i];
end;
sort(1,m);
for i:=1 to m do
d[b[i]]:=m-i+1;
for i:=1 to m do
begin
j:=n-d[c[i]]+1;
s:=0;
while j>0 do
begin
s:=s+a[j];
j:=j-m;
end;
write(s,' ');
end;
end.
排1次就够了。 。。。 -
02008-09-22 23:32:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 197ms
├ 测试数据 09:答案正确... 291ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:488ms
郁闷中,居然有两组不是秒杀... -
02008-09-22 16:36:57@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms双快排就好了
-
02009-07-18 15:02:29@
就是多次排序
-
02008-09-21 21:23:57@
编译通过...
├ 测试数据 01:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 02:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 03:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 04:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 05:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 06:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 07:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 08:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 09:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 10:运行时错误...| 错误号: 216 | 存取非法
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:0 有效耗时:0ms
program p1445;
type
point=^node;
node=record
z:longint;
data:longint;
m:longint;
next:point;
end;
var
head1,p1,q1,g1:point;
head2,p2,q2,g2:point;
x,y,n,m,i,j:integer;
procedure creat(t:integer;var head:point);
var
p,q,g:point;
x,a:integer;
begin
for a:=1 to t do
begin
read(x);
new(q);
q^.z:=a;
q^.data:=x;
q^.next:=nil;
p:=head;
g:=nil;
while (p^.data > x) and (pnil) do
begin
g:=p;
p:=p^.next;
end;
if g=nil then
begin
head:=q;
q^.next:=p;
end
else
if p=nil then
g^.next:=q
else
if p=head then
begin
q^.next:=head;
head:=q;
end
else
begin
q^.next:=p;
g^.next:=q;
end;
end;
end;
begin
head1:=nil;
head2:=nil;
readln(n,m);
creat(n,head1);
creat(m,head2);
p2:=head2;
if p2nil then
p2:=p2^.next
else
p2^.next:=head2;
p1:=head1;
p2:=head2;
while p1nil do
begin
if p2=nil then
p2:=head2;
p2^.m:=p2^.m+p1^.data;
p1:=p1^.next;
p2:=p2^.next;
end;
p2:=head2;
j:=1;
while j -
02008-09-21 19:51:25@
猥琐的快排
-
02008-09-21 14:23:07@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms两次快排的简单程序,我是第500个过的人!!!
-
02008-09-21 00:23:17@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 09:运行时错误...| 错误号: 216 | 存取非法
├ 测试数据 10:运行时错误...| 错误号: 216 | 存取非法为什么我的qsort*3出现错误??
program q_apple;
type arr=record
id,weight,s:integer;
end;
var
n,m:integer;
a,b:integer;
apple:array [1..100000] of integer;
taotao:array[1..100000] of arr;procedure qsort_id(l,r:integer);
var
i,j,x:integer;
k:arr;
begin
i:=l;
j:=r;
x:=taotao[(i+j) div 2].id;
repeat
while taotao[i].idx do dec(j);
if ij;
if i -
02008-09-20 19:31:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 259ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:259ms为什么用堆排就全过了……用快排就后面4个都堆栈溢出呢?哪个大牛解释一下?
========我的快排========
program p1445;
var
a,b,c,r:array[1..100000] of qword;
i,n,m:longint;
k:qword;
procedure ready;
begin
readln(n,m);
for i:=1 to n do read(a[i]);
for i:=1 to m do
begin
read(b[i]);
c[i]:=i;
end;
end;
procedure pai1(x,y:longint);
var
o,p,e,f,w:longint;
begin
o:=x;
p:=y;
w:=random(y-x)+x;
k:=a[w];
a[w]:=a[x];
a[x]:=k;
while p>o do
begin
while (p>o) and (a[p]>=a[x]) do dec(p);
while (p>o) and (a[o]o then
begin
k:=a[p];
a[p]:=a[o];
a[o]:=k;
end;
end;
if (x>o-20) and (xa[f] then
begin
k:=a[e];
a[e]:=a[f];
a[f]:=k;
end;
end
else
if xy) and (p+1a[f] then
begin
k:=a[e];
a[e]:=a[f];
a[f]:=k;
end;
end
else
if p+1o do
begin
while (p>o) and (b[p]o) and (b[o]>b[x]) do inc(o);
if p>o then
begin
k:=b[p];
b[p]:=b[o];
b[o]:=k;
k:=c[p];
c[p]:=c[o];
c[o]:=k;
end;
end;
if (x>o-20) and (x -
02008-09-20 14:14:55@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms结果还可以,就是程序猥琐了点……
-
02008-09-20 08:46:25@
program p1;
const maxn=100000;
var t,i,j,n,m:longint;
wa,wb:array[1..maxn] of longint;
id:array[1..maxn] of longint;
sum:array[1..maxn] of longint;procedure qsort_wa(s,t:longint);
var i,j,x,y:longint;
begin
i:=s;j:=t;x:=wa[(i+j) div 2];
repeat
while wa[i]>x do inc(i);
while wa[j]x do inc(i);
while wb[j] -
02008-09-19 19:35:33@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms两次才AC......
-
02008-09-19 16:17:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:运行时错误...| 错误号: 103 | 文件未打开
├ 测试数据 08:运行时错误...| 错误号: 103 | 文件未打开
├ 测试数据 09:运行时错误...| 错误号: 103 | 文件未打开
├ 测试数据 10:运行时错误...| 错误号: 103 | 文件未打开
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:50 有效耗时:0ms何为“文件未打开”???
-
02008-09-19 15:37:40@
哎 数据定义小了 连者3个超时
终于AC了