| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3046 人关注过本帖
标题:NOIP2010:导弹拦截
只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
为什么要动态分配呢?你可以定义一个数组,然后用qsort函数,就能快速排序:
qsort(array,n,sizeof(array[0]),comp);

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-11-29 09:05
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
找到了一个pascal AC的程序。

program rq604missile;
 type
     ret=record
         x,y,dis:longint;
         end;
 var
    x1,y1,x2,y2,n,i,ans,r:longint;
    a:array[1..100000]of ret;

 procedure qsort(head,tail:longint);
  var
     i,j:longint;
     x:ret;
  begin
       i:=head;j:=tail;x:=a[i];
       while i<j do
        begin
             while(i<j)and(x.dis>=a[j].dis) do j:=j-1;
             a[i]:=a[j];
             while(i<j)and(x.dis<=a[i].dis) do i:=i+1;
             a[j]:=a[i];
        end;
       a[i]:=x;
       if head<i-1 then qsort(head,i-1);
       if i+1<tail then qsort(i+1,tail);
  end;

 function dist(a,b,c,d:longint):longint;
  begin
       dist:=sqr(a-c)+sqr(b-d);
  end;

 procedure init;
  begin
       readln(x1,y1,x2,y2);
       readln(n);
       for i:=1 to n do
        begin
             with a[i] do
              begin
                   readln(x,y);
                   dis:=dist(x,y,x1,y1);
              end;
        end;
       qsort(1,n);
       r:=0;
  end;

 procedure work;
  begin
       ans:=a[1].dis;
       for i:=2 to n do
        begin
             with a[i-1] do
              begin
                   if r<dist(x2,y2,x,y) then r:=dist(x2,y2,x,y);
                   if ans>a[i].dis+r then ans:=a[i].dis+r;
              end;
        end;
  end;

 begin
      init;
      work;
      writeln(ans);
      close(input);
 end.

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-11-29 09:11
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
pascal没研究过!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-11-30 16:37
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
麻烦帮我写一下代码,让我看看,我坐标还没有学呢。。
听说这题先用快排,然后贪心,就可以了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-11-30 17:23
快速回复:NOIP2010:导弹拦截
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031995 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved