聪明的猴子 黑暗爆炸 - 2429

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

2<=N <= 1000,1<=M=500

最小生成树首先选择边最小的边,所以当实现一棵最小生成树后,可知该树中最大的边,若猴子的跳跃距离大于最大边,则猴子可以跳跃所有的树,反之不能
由此可知,本题就是最小生成树的模板题
建图,遍历所有的点,勾股定理求出距离

AC代码

#include<iostream>
#include<algorithm>
#include<cstring>
#include<stack>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=510;
const int M=1010;
struct Node{int x,y;int w;
}node[(M-1)*M/2];
int n;
int p[N];
int m;
int x[M],y[M];
int k;
int f[M];
int maxl;bool cmp(Node a,Node b)
{return a.w<b.w;
}double Dist(int a,int b,int c,int d)
{return sqrt((a-c)*(a-c)+(b-d)*(b-d));
}int find(int a)
{if(f[a]!=a) f[a]=find(f[a]);return f[a];
}void kruskal()
{sort(node,node+k,cmp);for(int i=1;i<=m;i++) f[i]=i;int cnt=m-1;for(int i=0;i<k;i++){int a=node[i].x;int b=node[i].y;int w=node[i].w;if(find(a)!=find(b)){f[find(a)]=find(b);cnt--;if(w>maxl) maxl=w;}}
}int main()
{cin>>n;for(int i=1;i<=n;i++) cin>>p[i];cin>>m; for(int i=1;i<=m;i++){cin>>x[i]>>y[i];for(int j=1;j<i;j++){node[k].x=i;node[k].y=j;node[k].w=Dist(x[i],y[i],x[j],y[j]);k++;}}kruskal();int ans=0;for(int i=1;i<=n;i++)if(p[i]>=maxl) ans++;cout<<ans<<endl; return 0;
}

聪明的猴子 黑暗爆炸 - 2429相关推荐

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

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

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

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1570  Solved: 902 [Submit][St ...

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

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

  4. 洛谷p2504 HAOI2006 聪明的猴子

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

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

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

  6. 黑暗爆炸OJ 3028. 食物 生成函数

    传送门 文章目录 题意: 思考 题意: 思考 考虑将每个条件转换成生成函数: (1)f1(x)=1+x2+...=11−x2(1)f_1(x)=1+x^2+...=\frac{1}{1-x^2}(1) ...

  7. Peaks加强版 黑暗爆炸 - 3551 Kruskal重构树 + 主席树

    传送门 文章目录 题意: 思路: 题意: 给你一张图,有nnn个山峰,每个山峰高度为hih_ihi​,有mmm条边,每条边有个难度值wiw_iwi​,现在有qqq个询问,每次询问给定一个山峰vvv,问 ...

  8. Network 黑暗爆炸 - 3732 倍增lca || Kruskal重构树

    传送门 文章目录 题意: 思路: 题意: 思路: 两点间最长边最小值一定是最小生成树上两点间的最大值,这个比较容易证,就不多说了. 知道这个结论后, 我们直接跑一个KruskalKruskalKrus ...

  9. 黑暗爆炸 #1059. [ZJOI2007]矩阵游戏

    传送门 思路:这道题能用二分图我是完全没有想到的,后来去补了下最大二分图的最大匹配,然后看题解才勉强推了这样的思路 一行的每个元素看成二分图的一边,一列的元素看成二分图的另一边. 如果某个点是1那么就 ...

  10. 莫比乌斯反演小结 + 黑暗爆炸 2301

    1.前言 莫比乌斯反演课上听蒙了,后来重新捋了一遍思路,看了一下示例,就明白了,写篇学习笔记总结下 2.一些引理 引理1 (莫比乌斯定理) ∑d∣nμ(n)={1,n=10,n≠1\sum_{d|n} ...

最新文章

  1. python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!
  2. mysql 查询字段语句_mysql查询语句常用字段操作函数
  3. php smarty 分页类,Smarty分页类Smartypaginate
  4. Android(六)——Android第一周学习
  5. ITK:查找图像的更高导数
  6. 计算机基础ABCDEF,计算机应用基础-在线作业ABCDEF.docx
  7. Linux内核分析 - 网络
  8. 点击跳转到QQ聊天界面
  9. 设计模式(一)Chain Of Responsibility责任链模式
  10. SQL Server 插入数据报IDENTITY_INSERT设置为off
  11. 中科大c语言试卷,中科大考研试题.doc
  12. vue 跨域请求js添加代码
  13. DIY_DE2之DM9000A网卡调试系列例程(一)——准备工作
  14. 线程?进程?-----该停下来思考一下了
  15. 【2018 SWERC - C 】Crosswords【字典树、暴力搜索】
  16. miui linux桌面图标,小米主题编辑器(miui主题编辑工具)下载了最新的正式版v5.3.23...
  17. 十天学会单片机和c语言编程 ppt,十天学会单片机和C语言编程笔记1
  18. OSChina 周二乱弹 ——深入浅出微信小程序
  19. matlab中对一个数求余,matlab中求余、求模运算方法总结
  20. 凌晨3点不回家:因为想不到的心酸!

热门文章

  1. 云计算基础1-云计算时代的发展-天翼云电脑
  2. work_study_plan
  3. kirin710f是什么处理器_hisiliconkirin710是什么处理器
  4. php自动加nofollow,WordPress自动给文章添加nofollow属性的实现方法
  5. ORA-19511 ANS1017E (RC-50) Session rejected: TCP/IP connection failure
  6. unity shader 溶解,上下左右,cutoff
  7. Pytorch实战__反向攻击(Adversarial Attack)
  8. ios百度地图开发之路径规划
  9. 转 爬虫与反爬虫套路
  10. word设置标题自动编号