讨论 / 498boat 过的大牛帮帮忙,有赏
x-ray 2010-07-17 04:08:00
点我顶贴 收藏 删除
我个人觉的很像导弹拦截(输出多少台设备),是不是贪心啊

var a,b,c,d:array[1..10000]of longint;

n,i,j,sum,min,p:longint;

procedure sort(l,r:longint);

var i,j,x,t:longint;

begin

i:=l;j:=r;

x:=a[(l+r) div 2];

repeat

while a[i]<x do inc(i);

while a[j]>x do dec(j);

if i<=j then

begin

t:=a[i];

a[i]:=a[j];

a[j]:=t;

t:=b[i];

b[i]:=b[j];

b[j]:=t;

inc(i);

dec(j);

end;

until i>j;

if l<j then sort(l,j);

if i<r then sort(i,r);

end;

begin

readln(n);

for i:=1 to n do

readln(a[i],b[i]);

sort(1,n);

sum:=0;

fillchar(c,sizeof(c),0);

for i:=1 to n do

begin

if sum=0 then

begin

c[1]:=b[1];

inc(sum);

end

else

begin

min:=maxlongint;

p:=0;

for j:=1 to sum do

if(b[i]<c[j])and(min>c[j]-b[i])then

begin

p:=j;

min:=c[j]-b[i];

end

else if (a[i]>c[j]) then p:=j;

if p=0 then

begin

inc(sum);

c[sum]:=b[i];

end

else

begin

c[p]:=b[i];

end;

end;

end;

write(sum)

end.

#1 x-ray@2009-08-14 06:50:00
回复 删除
顶一下吧
#2 x-ray@2009-08-15 06:37:00
回复 删除
#3 飞雪天涯@2009-08-15 18:52:00
回复 删除
看看官标吧……

http://www.rqnoj.cn/Solution_Show.asp?DID=4735

#4 飞雪天涯@2009-08-15 18:52:00
回复 删除
[url]http://www.rqnoj.cn/Solution_Show.asp?DID=4735[/url]
#5 x-ray@2009-08-16 04:55:00
回复 删除
大哥讲讲思路吧,我是菜鸟,看不懂C++,谢谢
#6 xxwzy@2009-08-16 05:25:00
回复 删除
LS大牛真谦虚啊~!

学习~!

#7 Jollwish@2009-08-16 05:55:00
回复 删除
欸~~

干嘛见题就想刷呢

水体漆完了再说

这题可不是水体。。。

别把它想得太简单了。。

#8 x-ray@2009-08-17 21:06:00
回复 删除
顶一下
#9 lijiaming12340@2010-07-17 04:08:00
回复 删除
tai easy

查看更多回复
提交回复