cogs 1310. [HAOI2006]聪明的猴子
1310. [HAOI2006]聪明的猴子
★ 输入文件:monkey.in
输出文件:monkey.out
简单对比
时间限制:1 s 内存限制:128 MB
【题目描述】
在一个热带雨林中生存着一群猴子,它们以树上的果子为生。昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,
猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的部分植物的树冠上来回穿梭,以找到喜欢吃的果实。
现在,在这个地区露出水面的有N棵树,假设每棵树本身的直径都很小,可以忽略不计。我们在这块区域上建立直角坐标系,则每一棵树的位置由其所对应的坐标表示(任意两棵树的坐标都不相同)。
在这个地区住着的猴子有M个,下雨时,它们都躲到了茂密高大的树冠中,没有被大水冲走。由于各个猴子的年龄不同、身体素质不同,它们跳跃的能力不同。有的猴子跳跃的距离比较远(当然也可以跳到较近的树上),而有些猴子跳跃的距离就比较近。这些猴子非常聪明,它们通过目测就可以准确地判断出自己能否跳到对面的树上。
任务:现已知猴子的数量及每一个猴子的最大跳跃的距离,还知道露出水面的每一棵树的坐标,你的任务是统计有多少猴子可以在这个地区露出水面的所有树冠上觅食。
【输入格式】
第一行一个整数,表示猴子的个数 M(2<=M<=500)
第二行为M个整数,依次表示猴子的最大跳跃距离(每个整数值在1---1000之间)
第三行为一个整数,表示树的总棵树N(2<=N<=1000)
第四行至第N+3行为N棵树的坐标(横纵坐标均为整数,范围为:-1000--1000)
【输出格式】
输出只有一行,包括一个整数,表示可以有这个地区的所有树冠上觅食的猴子数。
【样例输入】
4
1 2 3 4
6
0 0
1 0
1 2
-1 -1
-2 0
2 2
【样例输出】
3
【提示】
对于40%的数据,保证有2<=N<=100,1<=M<=100
对于100%的数据,保证有2<=N<=1000,1<=M<=500
思路:最小生成树。
#include<cmath>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int monky[];
struct q{
int x,y,t;
}tree[];
int m,n,num,f[];
struct p{
int from;
int to;
double dis;
}c[];
int cmp(p a1,p a2){
return a1.dis<a2.dis;
}
int find(int x){
if(f[x]!=x) f[x]=find(f[x]);
return f[x];
}
int main(){
freopen("monkey.in","r",stdin);
freopen("monkey.out","w",stdout);
cin>>m;
for(int i=;i<=m;i++)
cin>>monky[i];
cin>>n;
for(int i=;i<=n;i++){
cin>>tree[i].x>>tree[i].y;
tree[i].t=i;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
c[++num].from=tree[i].t;
c[num].to=tree[j].t;
c[num].dis=sqrt(pow(tree[i].x-tree[j].x,)+pow(tree[i].y-tree[j].y,));
}
stable_sort(c+,c++num,cmp);
stable_sort(monky+,monky++m);
int u,l=;
for(int i=;i<=n;i++) f[i]=i;
for(int i=;i<=num;i++){
if(l==n-) break;
if(find(c[i].from)!=find(c[i].to)){
f[find(c[i].from)]=find(c[i].to);
l++;
u=c[i].dis;
}
}
int tot=;
for(int i=;i<=m;i++)
if(monky[i]>=u)
tot++;
cout<<tot;
return ;
}
cogs 1310. [HAOI2006]聪明的猴子的更多相关文章
- COGS——T1310. [HAOI2006]聪明的猴子
http://cogs.pro/cogs/problem/problem.php?pid=1310 ★ 输入文件:monkey.in 输出文件:monkey.out 简单对比时间限制:1 ...
- 最小生成树——[HAOI2006]聪明的猴子
题目:[HAOI2006]聪明的猴子 描述: [题目描述] 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着, 猴子不会游泳,但跳 ...
- BZOJ2429[HAOI2006]聪明的猴子[最小生成树 kruskal]
2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 896 Solved: 575[Submit][Statu ...
- 最小生成树 2429: [HAOI2006]聪明的猴子
BZOJ 2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 877 Solved: 566[Submit][ ...
- BZOJ 2429: [HAOI2006]聪明的猴子( MST )
水题, 求MST即可. -------------------------------------------------------------------------------- #includ ...
- 2429: [HAOI2006]聪明的猴子
2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 448 Solved: 309[Submit][Statu ...
- 洛谷—— P2504 [HAOI2006]聪明的猴子
P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上. ...
- 洛谷——P2504 [HAOI2006]聪明的猴子
P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上. ...
- 洛谷 P2504 [HAOI2006]聪明的猴子
洛谷 P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水 ...
随机推荐
- Linux基础命令第二波
第1章 Linux启动过程 开机自检(BIOS)##硬件检查 MBR引导 GRUB菜单(选择不同的内核) 加载内核 运行init进程(Linux系统里面第一个进程) 读取/etc/inittab配置文 ...
- codevs3327选择数字(单调队列优化)
3327 选择数字 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 给定一行n个非负整数a[1]..a[n].现 ...
- ACM_二维数组的查找
二维数组的查找 Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个n*m的二维数组,保证a[i][j] < a[i+1 ...
- AndroidManifest.xml详解
一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...
- 编译安装php、nginx
以centos6.6为例 1.安装以及配置php 首先在官网下载源码包http://php.net/downloads.php 这里下载php-7.1.16 .tar.gzcd php-7.1.16 ...
- EasyUI系列学习(一)-入门
1.什么是jQuery EasyUI jQueryEasyUI是一组基于jQuery的UI插件集合 2.jQueryEasyUI的特点 可以通过html标记来定义用户界面:支持扩展,可根据最近的需求扩 ...
- 【转】Centos7 ftp 配置及报错处理
原文链接: https://www.cnblogs.com/GaZeon/p/5393853.html Centos7网络配置,vsftpd安装及530报错解决 今天在虚拟机安装CentOS7,准备全 ...
- [转]Wote用python语言写的imgHash.py
#!/usr/bin/python import glob import os import sys from PIL import Image EXTS = 'jpg', 'jpeg', 'JPG' ...
- JS——switch case
语法: switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 ...
- Html5 WebSocket详细介绍
什么是WebSocket?看过html5的同学都知道,WebSocket protocol 是HTML5一种新的协议.它是实现了浏览器与服务器全双工通信(full-duplex).HTML5定义了We ...