zoukankan      html  css  js  c++  java
  • 2429: [HAOI2006]聪明的猴子

    2429: [HAOI2006]聪明的猴子

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 448  Solved: 309
    [Submit][Status][Discuss]

    Description

    在一个热带雨林中生存着一群猴子,它们以树上的果子为生。昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上。猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的不同树冠上来回穿梭,以找到喜欢吃的果实。
    现在,在这个地区露出水面的有N棵树,假设每棵树本身的直径都很小,可以忽略不计。我们在这块区域上建立直角坐标系,则每一棵树的位置由其所对应的坐标表示(任意两棵树的坐标都不相同)。
    在这个地区住着的猴子有M个,下雨时,它们都躲到了茂密高大的树冠中,没有被大水冲走。由于各个猴子的年龄不同、身体素质不同,它们跳跃的能力不同。有的猴子跳跃的距离比较远(当然也可以跳到较近的树上),而有些猴子跳跃的距离就比较近。这些猴子非常聪明,它们通过目测就可以准确地判断出自己能否跳到对面的树上。
    【问题】 现已知猴子的数量及每一个猴子的最大跳跃距离,还知道露出水面的每一棵树的坐标,你的任务是统计有多少个猴子可以在这个地区露出水面的所有树冠上觅食。

    Input

    第1行为一个整数,表示猴子的个数M(2<=M<=500);

    第2行为M个整数,依次表示猴子的最大跳跃距离(每个整数值在1--1000之间);

    第3行为一个整数表示树的总棵数N(2<=N<=1000);

    第4行至第N+3行为N棵树的坐标(横纵坐标均为整数,范围为:-1000--1000)。

    (同一行的整数间用空格分开)

    Output

    包括一个整数,表示可以在这个地区的所有树冠上觅食的猴子数

    Sample Input

    4
    1 2 3 4
    6
    0 0
    1 0
    1 2
    -1 -1
    -2 0
    2 2

    Sample Output

    3

    HINT

    对于40%的数据,保证有2<=N <=100,1<=M<=100


    对于全部的数据,保证有2<=N <= 1000,1<=M=500



    Source

    Day2

    题解:一个裸的最小生成树,直接求出来之后判断下就是了= =

     1 /**************************************************************
     2     Problem: 2429
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:396 ms
     7     Memory:11976 kb
     8 ****************************************************************/
     9  
    10 var
    11    i,j,k,l,m,n,mm:longint;
    12    b:array[0..2000,1..2] of longint;
    13    a:array[0..1000005,1..3] of longint;
    14    c,d:array[0..2000] of longint;
    15 function max(x,y:longint):longint;inline;
    16          begin
    17               if x>y then max:=x else max:=y;
    18          end;
    19 procedure swap(var x,y:longint);inline;
    20           var z:longint;
    21           begin
    22                z:=x;x:=y;y:=z;
    23           end;
    24 procedure sort(l,r:longint);inline;
    25           var i,j,x,y:longint;
    26           begin
    27                i:=l;j:=r;x:=a[(l+r) div 2,3];
    28                repeat
    29                      while a[i,3]<x do inc(i);
    30                      while a[j,3]>x do dec(j);
    31                      if i<=j then
    32                         begin
    33                              swap(a[i,1],a[j,1]);
    34                              swap(a[i,2],a[j,2]);
    35                              swap(a[i,3],a[j,3]);
    36                              inc(i);dec(j);
    37                         end;
    38                until i>j;
    39                if i<r then sort(i,r);
    40                if l<j then sort(l,j);
    41           end;
    42 function getfat(x:longint):longint;inline;
    43          begin
    44               if x<>c[x] then c[x]:=getfat(c[x]);
    45               exit(c[x]);
    46          end;
    47 begin
    48      readln(m);
    49      for i:=1 to m do read(d[i]);
    50      readln;l:=0;readln(n);
    51      for i:=1 to n do readln(b[i,1],b[i,2]);
    52      for i:=1 to n-1 do
    53          for j:=i+1 to n do
    54              begin
    55                   inc(l);a[l,1]:=i;a[l,2]:=j;
    56                   a[l,3]:=(b[i,1]-b[j,1])*(b[i,1]-b[j,1])+(b[i,2]-b[j,2])*(b[i,2]-b[j,2]);
    57              end;
    58      sort(1,l);
    59      for i:=1 to n do c[i]:=i;
    60      j:=0;mm:=0;
    61      for i:=1 to n-1 do
    62          begin
    63               repeat
    64                     inc(j);
    65                     k:=getfat(a[j,1]);
    66                     l:=getfat(a[j,2]);
    67               until k<>l;
    68               mm:=max(mm,a[j,3]);
    69               c[k]:=l;
    70          end;
    71      l:=0;
    72      for i:=1 to m do if (d[i]*d[i])>=mm then inc(L);
    73      writeln(l);
    74      readln;
    75 end.
  • 相关阅读:
    一致性hash算法
    Mapreduce部署与第三方依赖包管理
    windows10下使用spark-2.3.0-bin-without-hadoop相关问题
    VirtualBox mount报错:/sbin/mount.vboxsf: mounting failed with the error: No such device
    如何重命名MongoDB中的replica set
    MongoDB开发环境Replica Set单机部署流程
    MongoDB修改Replica Set的服务器名和端口
    Axios -- Ajax请求
    element中的table表格显示时间格式问题
    java 常用工具类
  • 原文地址:https://www.cnblogs.com/HansBug/p/4470737.html
Copyright © 2011-2022 走看看