2429: [HAOI2006]聪明的猴子

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 1570  Solved: 902
[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

就是生成一个n个点的联通图

要求图中最长的边尽可能的短

这不就是最小生成树嘛

#include<stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
typedef struct Res
{int x, y;double len;bool operator < (const Res &b) const{if(len<b.len)return 1;return 0;}
}Road;
Road s[1000005];
int a[1005], ufs[1005], x[1005], y[1005];
int Find(int x)
{if(ufs[x]==0)return x;return ufs[x] = Find(ufs[x]);
}
int main(void)
{double bet;int m, n, i, j, cnt, t1, t2, ans;scanf("%d", &m);for(i=1;i<=m;i++)scanf("%d", &a[i]);scanf("%d", &n);for(i=1;i<=n;i++)scanf("%d%d", &x[i], &y[i]);cnt = 0;for(i=1;i<=n;i++){for(j=i+1;j<=n;j++)s[++cnt].x = i, s[cnt].y = j, s[cnt].len = sqrt(1.0*(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}bet = 0;sort(s+1, s+cnt+1);for(i=1;i<=cnt;i++){t1 = Find(s[i].x);t2 = Find(s[i].y);if(t1!=t2){ufs[t1] = t2;bet = max(bet, s[i].len);}}ans = 0;for(i=1;i<=m;i++){if(a[i]>=bet)ans++;}printf("%d\n", ans);return 0;
}

bzoj 2429: [HAOI2006]聪明的猴子(最小生成树)相关推荐

  1. BZOJ 2429: [HAOI2006]聪明的猴子【最小生成树】

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MB Description 在一个热带雨林中生存着一群猴子,它们以树上的果子为生 ...

  2. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)

    性质:最小生成树上任意两点间的最大边权,一定是这两点间所有路径的最大边权中最小的.证明显然. 1 #include<cstdio> 2 #include<cstring> 3 ...

  3. P2504 [HAOI2006]聪明的猴子 题解

    P2504 [HAOI2006]聪明的猴子 题解 题目 链接 字面描述 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 思路 代码实现 题目 链接 https://ww ...

  4. 洛谷p2504 HAOI2006 聪明的猴子

    [题目描述] 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着, 猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的部分植物 ...

  5. BZOJ 1050 [HAOI2006]旅行comf(最小生成树)

    题意 第一行包含两个正整数,N和M.下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路 ,车辆必须以速度v在该公路上行驶.最后一行包含两个正整数s,t,表示想知道从景点s到 ...

  6. BZOJ 2139 road(构造,最小生成树)【BZOJ 修复工程】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2139 是 hydro 的 BZOJ ...

  7. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  8. [BZOJ 2523][Ctsc2001]聪明的学生(递归)

    Description 一位教授逻辑学的教授有三名非常善于推理且精于心算的学生A,B和C.有一天,教授给他们三人出了一道题:教授在每个人脑门上贴了一张纸条并告诉他们,每个人的纸条上都写了一个正整数,且 ...

  9. BZOJ 1051: [HAOI2006]受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 7120  Solved: 3779 [Submit][S ...

最新文章

  1. 文巾解题 14. 最长公共前缀
  2. SpringBoot 报错Field XXX required a bean of type XXX that could not be found.
  3. docker构建容器服务
  4. 第二阶段团队冲刺(七)
  5. kafka分区机制详解
  6. 一张壁纸就是一段故事,壁纸控的找图不难!
  7. 关于TP中的M()方法与D()方法
  8. Python判断素数(质数)
  9. Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
  10. Java Swing 开发之JTable中在添加组件(JCheckBox)
  11. ②⓪②⓪ → ②⓪②①
  12. 使用ARCGIS多重缓冲区分析工具建立颜色渐变行政边界
  13. Excel求和公式的几种用法
  14. NIO和BIO和AIO区别
  15. 【C/C++学习笔记】C++11 random 随机数(TR1)
  16. 立创开源 | 基于ESP-01的桌面小彩灯
  17. 乐千业:税务筹划对企业的经营到底有多重要呢
  18. steam上c语言的游戏,【图片】在steam吧你甚至可以讨论c语言_steam吧_百度贴吧
  19. 数据仓库面试题-初级
  20. Android LCD(一):LCD基本原理篇

热门文章

  1. python办公自动化案例-Python实战:自动化办公:Python 自动整理 Excel 表格
  2. python100例详解-Python字典实现简单的三级菜单(实例讲解)
  3. python安装-Python uWSGI 安装配置
  4. python递归函数入门教程_Python递归函数
  5. 小程序 报request:fail invalid url 不校验合法域名已勾选
  6. mysql数据库创建表时通过设置什么属性可以设置字段编号自动增加_Mysql数据库创建表样例和解释...
  7. CMFCPropertyGridCtrl 的简单教程
  8. oracle 函数 结果集,Oracle 中函数如何返回结果集
  9. Springboot项目启动时加载数据库数据到内存
  10. Cache 和 Buffer 有什么区别?