72 条题解
-
0wzc1995 LV 10 @ 2009-08-18 00:42:03
最高效沙茶算法
找最大最小,如果中间有一个数比最小的大k且比最大的小k即不行。O(N)
作者说的,如侵权,本人立即删除。
(p.s这是为大家好嘛) -
02009-08-17 23:48:09@
二分染色?
-
02009-08-18 17:16:43@
别想复杂了,才1500,平方才2250000,连快排都不用
泡泡排序+o(n)检查(遍历分点,看是否前半段和后半段最大差都在k以内)=AC
-
02009-08-10 20:28:59@
哇
-
02009-08-07 21:26:14@
en
-
02009-08-07 20:49:32@
第一题?基德出现啦!!
-
02009-08-06 20:20:27@
zgx自己都没过??!!!???!!!???!!大忽悠??~~·!!·~~#¥·#%#……
-
02009-08-06 20:19:52@
Orz神牛
-
02009-08-06 19:02:51@
!!!我晕了!!!
-
02009-08-06 18:42:28@
orz
-
02009-08-06 18:16:47@
ORz
-
-12014-03-29 08:29:33@
var n,i,k,head,tail:longint;
a:array[0..100000] of longint;
procedure qsort(h,l:longint);
var i,j,m,temp:longint;
begin
i:=h;j:=l;m:=a[(i+j) shr 1];
repeat
while a[i]<m do inc(i);
while a[j]>m do dec(j);
if i<=j then
begin
temp:=a[i];a[i]:=a[j];a[j]:=temp;
inc(i);dec(j);
end;
until i>j;
if i<l then qsort(i,l);
if j>h then qsort(h,j);
end;
begin
readln(n,a[1],k);
for i:=2 to n do read(a[i]);
qsort(1,n);
head:=2;tail:=n-1;a[0]:=-maxlongint;a[n+1]:=maxlongint;
while a[head]<=a[1]+k do inc(head);
while a[tail]>=a[n]-k do dec(tail);
if head>tail then writeln('Yes') else writeln('No');
end.
好水的题啊!快排+扫描=秒杀!