106 条题解
-
0冲啊小笼包 LV 9 @ 2015-04-20 20:29:36
program P1282;
var data:array[1..50000,1..2] of longint;
e:array[1..10] of longint;
n,k,i,j:longint;
procedure change(var x,y:longint);
var t:longint;
begin
t:=x; x:=y; y:=t;
end;procedure qsort(l,r:longint);
var mid,a,b,i:longint;
begin
mid:=data[(l+r) div 2,2]; a:=l; b:=r;
i:=data[(l+r) div 2,1];
repeat
while (data[a,2]>mid) or ((data[a,2]=mid) and (data[a,1]<i)) do inc(a);
while (data[b,2]<mid) or ((data[b,2]=mid) and (data[b,1]>i)) do dec(b);
if a<=b then
begin
change(data[a,2],data[b,2]);
change(data[a,1],data[b,1]);
inc(a); dec(b);
end;
until a>b;
if l<b then qsort(l,b);
if a<r then qsort(a,r);
end;begin //main
read(n,k); fillchar(data,sizeof(data),0);
for i:=1 to 10 do read(e[i]);
for i:=1 to n do read(data[i,2]);
for i:=1 to n do data[i,1]:=i;
qsort(1,n);
for i:=1 to n do
data[i,2]:=data[i,2]+e[((i-1) mod 10)+1];
qsort(1,n);
for i:=1 to k do
write(data[i,1],' ');end.
-
02015-04-20 20:13:33@
我去,为什么我的快排必须的重复排2次才能实现按W排,然后再按编号排序啊???有时候多个相同W的时候不能做到编号小的在前面?为什么?
比如2 5 16号都是一样的W,它常常不能排成2 5 16,我再快排一次才行。怎么会这样???
-
02015-04-20 15:33:03@
这题太lou了,题目都错的
什么叫 然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1--n)???
明显题目要求是直接排序,按排序编号。
但是实际确实按读入顺序标号。 算的时候按排序计算!!!这明显是阴人,搞不明白为什么第一次写了然后改的程序是错的。醉了
-
02015-03-01 10:34:58@
program exam1282;
var a,c,w,e:array[1..50000]of longint;
j,i,s,t,r,m,n,k:longint;
procedure js(l,r:longint);
var i,j,m,p,m2:longint;
begin
i:=l;j:=r; m:=w[(l+r)div 2];
m2:=a[(l+r)div 2];
repeat
while (w[i]>m)or((w[i]=m)and(a[i]<m2)) do inc(i);
while (w[j]<m)or((w[j]=m)and(a[j]>m2)) do dec(j);
if i<=j then
begin
p:=w[i];w[i]:=w[j];w[j]:=p;
p:=a[i];a[i]:=a[j];a[j]:=p;
inc(i);dec(j);
end;
until i>j;
if l<j then js(l,j);
if i<r then js(i,r);
end;
begin
readln(m,k);
if k=0 then exit;
for i:=1 to 10 do read(e[i]);
for i:=1 to m do read(w[i]);
for i:=1 to m do a[i]:=i;
js(1,m);
for i:=1 to m do c[i]:=(i-1)mod 10 +1;
for i:=1 to m do w[i]:=w[i]+e[c[i]];
js(1,m);
for i:=1 to k do write(a[i],' ');
end.低调,低调!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
02014-08-03 21:08:21@
#5 k=0::>_<::
记录信息
评测状态 Accepted
题目 P1282 佳佳的魔法照片
递交时间 2014-08-03 21:06:15
代码语言 C++
评测机 VijosEx
消耗时间 950 ms
消耗内存 632 KiB
评测时间 2014-08-03 21:06:21
评测结果
编译成功测试数据 #0: Accepted, time = 0 ms, mem = 268 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 272 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 272 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 272 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 272 KiB, score = 10
测试数据 #5: Accepted, time = 140 ms, mem = 480 KiB, score = 10
测试数据 #6: Accepted, time = 156 ms, mem = 520 KiB, score = 10
测试数据 #7: Accepted, time = 187 ms, mem = 564 KiB, score = 10
测试数据 #8: Accepted, time = 218 ms, mem = 592 KiB, score = 10
测试数据 #9: Accepted, time = 249 ms, mem = 632 KiB, score = 10
Accepted, time = 950 ms, mem = 632 KiB, score = 100 -
02013-10-04 09:46:53@
1.这道题描述的像大便,编号序号说的也不清楚
2.第五个点不知道为何用意坑人的NC题,一点意思也没
-
02012-10-05 14:54:54@
编译通过...
├ 测试数据 01:答案正确... (0ms, 1752KB)
├ 测试数据 02:答案正确... (0ms, 1752KB)
├ 测试数据 03:答案正确... (0ms, 1752KB)
├ 测试数据 04:答案正确... (0ms, 1752KB)
├ 测试数据 05:答案正确... (0ms, 1752KB)
├ 测试数据 06:答案正确... (0ms, 1752KB)
├ 测试数据 07:答案正确... (0ms, 1752KB)
├ 测试数据 08:答案正确... (0ms, 1752KB)
├ 测试数据 09:答案正确... (0ms, 1752KB)
├ 测试数据 10:答案正确... (0ms, 1752KB)---|---|---|---|---|---|---|---|-
Accepted / 100 / 0ms / 1752KBAC率什么的都是浮云……
手动测了N遍,各种错误:什么交换错误出了一串5;什么排序错误成了从小到大;什么计算错误d[i]c[i];什么范围错误把范围开到0;什么存取非法我连文件都没用不就是死循环么?快要交了随便编了个e[i]全是0的数据居然错掉了,改来改去弄好了交上去20WA,再一看改的时候把输出空格去掉了……怎么还能过两个点……
同志们,此题目水,此题描述繁琐,此题范围缺失,此题纯粹阴人,看看右侧边栏上的通过率,就不用担心你的AC率了…… -
02012-08-27 13:20:21@
NC题
-
02009-10-29 18:48:14@
Accepted 有效得分:100 有效耗时:0ms
水题……开了500000的数组以防万一……
-
02009-10-23 19:15:52@
没范围的阴人的水题。。。真没意思
-
02009-10-23 08:05:36@
快排多次就OK了
type r=record
w,xu:longint;
end;
var a:array[1..100000] of r;
e:array[1..10]of longint;
i,j,k,ls,n,m:longint;procedure sort(left,right:longint);
var i,j,x:longint;
y:r;
begin
i:=left; j:=right; x:=a[(left*2+right) div 3].w;
repeat
while a[i].wx do dec(j);
if ij;
if left -
02009-10-20 11:05:03@
"定义每个人的类别序号C[i]的值为(D[i]-1) mod 10 +1"
什么D[i],就是i啊这里没搞清wa了5遍
-
02009-10-05 20:30:43@
第5个点错误...
├ 测试数据 05:答案错误...
├ 标准行输出 ...15 7 61...
├ 错误行输出 ...15 92 6...
"92"怎么出来的?
排序时考虑了编号小的在前面的问题
帮忙解决下,谢谢... -
02009-09-21 16:58:42@
好吧 我承认我又沙茶了........
快排写错了.....改了N多回.....
就是一个多关键字快排...... -
02009-09-08 07:37:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-09-06 09:07:26@
无视AC率吧..
-
02009-08-30 00:14:15@
就是多级快排……
交了N次都WA,逼不得已动用马甲了。
后来发现找中间量的时候我只是把位置(l+r) div 2记下来,而不是把值记下来,这样递归的时候值变掉了,快排就出错了…………………………血训啊!
-
02009-08-28 22:54:10@
交了15遍才过,AC率from51%to48%,T T
贴个程序吧,免得大家都像我一样,实在不会可以抄一下,或向我请教。
var e:array[1..10] of longint;
w,d:array[1..50000] of longint;
i,m,n,j:longint;procedure ss(x,y:longint);
var ii,jj,s,o,aa:longint;
begin
ii:=x;jj:=y;
s:=w[(x+y) shr 1];
aa:=d[(x+y) shr 1];
repeat
while (w[ii]>s) or ((w[ii]=s) and (d[ii] -
02009-08-21 22:36:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
第5组 k=0 阴人 -
02009-08-20 13:57:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms强烈bs这种阴人的水题!!!
为什么不给数据范围!!!
数组范围是50000,搞得我提交了好几次才过!!!
数据范围是Longint,不用int64!!!
k居然可以为0!!!
我总算知道这题通过率咋这么低了!!!!!!