2429: [HAOI2006]聪明的猴子
2429: [HAOI2006]聪明的猴子
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 448 Solved: 309
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
题解:一个裸的最小生成树,直接求出来之后判断下就是了= =
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.
- 100个Numpy练习【4】
- Golang语言中Path包用法
- 100个Numpy练习【5】
- Golang中container/list包中的坑
- 关于Golang语言数组索引的有趣现象
- 使用SQL来分析数据库参数(二)(r10笔记第82天)
- Golang不定参数
- [go语言]利用缓冲信道来实现网游帐号验证消息的分发和等待
- 转--Golang语言版 ssh口令破解工具
- cubieboard(树莓派)安装Ubuntu+Apache+PHP+Mysql
- Oracle 12c里的几点补充(一)(r11笔记第7天)
- Oracle备库的PDB无法连接的问题(r11笔记第6天)
- Golang语言社区--模板的使用
- Golang语言写Web 应用程序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python字符串操作--寻找所有匹配的位置
- java设计模式-工厂模式
- java设计模式-工厂方法模式
- java设计模式-抽象工厂模式
- Prometheus监控神器-Alertmanager篇(1)
- java设计模式-单例模式
- Spring事务专题(三)事务的基本概念,Mysql事务处理原理
- cocos creator使用protobuf实现网络模块
- 简单聊聊红黑树(Red Black Tree)
- cocos creator探照灯效果实现
- servlet/filter/listener/interceptor区别与联系
- Linux下文本的简单处理(awk和sed)
- Spring4定时器 cronTrigger和simpleTrigger实现方法
- Tomcat远程调试
- IDEA建立Spring MVC Hello World 详细入门教程