题目描述

在一个热带雨林中生存着一群猴子,它们以树上的果子为生。昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上。猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的不同树冠上来回穿梭,以找到喜欢吃的果实。

现在,在这个地区露出水面的有N棵树,假设每棵树本身的直径都很小,可以忽略不计。我们在这块区域上建立直角坐标系,则每一棵树的位置由其所对应的坐标表示(任意两棵树的坐标都不相同)。

在这个地区住着的猴子有M个,下雨时,它们都躲到了茂密高大的树冠中,没有被大水冲走。由于各个猴子的年龄不同、身体素质不同,它们跳跃的能力不同。有的猴子跳跃的距离比较远(当然也可以跳到较近的树上),而有些猴子跳跃的距离就比较近。这些猴子非常聪明,它们通过目测就可以准确地判断出自己能否跳到对面的树上。

【问题】现已知猴子的数量及每一个猴子的最大跳跃距离,还知道露出水面的每一棵树的坐标,你的任务是统计有多少个猴子可以在这个地区露出水面的所有树冠上觅食。

输入格式

输入文件monkey.in包括:

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

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

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

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

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

输出格式

输出文件monkey.out包括一个整数,表示可以在这个地区的所有树冠上觅食的猴子数。

输入输出样例

输入 #1复制

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

输出 #1复制

3

说明/提示

【数据规模】

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

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

感谢@charlie003 修正数据

题解:板子kruskal,可惜我一开始数组开小了,导致50分,RE了另外5个点

而且我一开始忘记fa[i]=i了。枯了,漏洞百出啊!继续努力。

#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
typedef double db;
const int N=1005;
const int MX=2500006;
int n,m,cp,tot,fa[N],b[N];struct node{int x,y;
}a[N];struct YCLL{int u,v;int va;
}e[MX];int ans=0;int how_long(int uu,int vv){int x5=a[uu].x; int x6=a[vv].x;int y5=a[uu].y; int y6=a[vv].y;return (x5-x6)*(x5-x6)+(y5-y6)*(y5-y6);
}bool cmp(YCLL aa,YCLL bb){return aa.va<bb.va;
}int find(int x){if(x!=fa[x]) fa[x]=find(fa[x]);return fa[x];
}
//int b[N];
int main(){freopen("2504.in","r",stdin);freopen("2504.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&b[i]);scanf("%d",&m);for(int i=1;i<=m;i++) fa[i]=i;for(int i=1;i<=m;i++)scanf("%d %d",&a[i].x,&a[i].y);for(int i=1;i<=m;i++){for(int j=i+1;j<=m;j++){cp++; e[cp].u=i; e[cp].v=j;e[cp].va=how_long(i,j);//cout<<e[cp].va<<endl;
        }}sort(e+1,e+cp+1,cmp);//cout<<cp;for(int i=1;i<=cp;i++){//cout<<"00340204"<<endl;int uu=find(e[i].u);int vv=find(e[i].v);if(uu==vv) continue;ans=max(ans,e[i].va); fa[uu]=vv; //tot++;//if(tot==(m-1)) break;
    }int fans=0; db ff=(db)sqrt(ans);for(int i=1;i<=n;i++)if(ff<=b[i]) fans++;printf("%d",fans);return 0;
}

转载于:https://www.cnblogs.com/wuhu-JJJ/p/11291216.html

【洛谷 2504】聪明的猴子相关推荐

  1. 洛谷 [P1314] 聪明的质检员(NOIP2011 D2T2)

    一道二分答案加前缀和 题目中已经暗示的很明显了 "尽可能靠近" " 最小值" 本题的主要坑点在于 long long 的使用 abs函数不支持long long ...

  2. 洛谷P1314 聪明的质检员(二分)

    2020.6.13 题意,找y与给出的标准值k的差值的最小值 这道题是为数不多的好题之一.二分+bfs什么的可以练练,不过icpc不会出这么恶心的题就是了.这道题是二分专题,首先我们要找单调性,观察到 ...

  3. P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)

    众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...

  4. 洛谷刷题C语言:距离函数、闰年展示、计算阶乘、猴子吃桃、培训

    记录洛谷刷题QAQ 一.[深基7.例1]距离函数 题目描述 给出平面坐标上不在一条直线上三个点坐标 (x1,y1),(x2,y2),(x3,y3)(x_1,y_1),(x_2,y_2),(x_3,y_ ...

  5. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  6. 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game

    洛谷 2953  [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...

  7. 洛谷——P1056 排座椅

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳. 同 ...

  8. 洛谷找最小值c语言,洛谷 P1478 陶陶摘苹果(升级版) C语言实现

    原题地址:P1478 淘淘摘苹果(升级版)- 洛谷 题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NO ...

  9. 洛谷 深基 第1部分 语言入门 第7章 函数与结构体

    P5735 [深基7.例1]距离函数 [深基7.例1]距离函数 - 洛谷 P5735 [深基7.例1]距离函数(python3实现) P5735 [深基7.例1]距离函数(python3实现)_青少年 ...

  10. 广度优先搜索——USACO08FEB(洛谷 P2895)

    本文要讲述的是一道既简单又复杂的一道题,值得我们好好去思考并求解. 题目出自洛谷P2895 同时也是USACO2008年的一道题. 其中主要问题是如何将问题转化为对应的数组或图?如何判断满足的条件情况 ...

最新文章

  1. Kubernetes 架构(下)【转】
  2. 【vue】使用localStorage解决vuex在页面刷新后数据被清除的问题
  3. 添加dubbo.xsd的方法
  4. WPF 创建自定义面板
  5. 【2016年第6期】俄罗斯跨境数据流动立法规则与执法实践
  6. 华为手机媒体音量自动静音_华为手机音量键隐藏着四个功能,80%的人只知道第一个!...
  7. 下定决心博客搬家(再见csdn,For my oschina!)
  8. Zookeeper实现简单的分布式RPC框架
  9. 数据库实时同步技术解决方案
  10. 140809暑期培训
  11. [HCIP]MPLS解决路由黑洞
  12. 最新码支付源码+完整版+免挂监听回调+微信、支付宝、qq监控APP打包教程
  13. mysql 日程设计_客服-电销日程表 - 数据库设计 - 数据库表结构 - 果创云
  14. wps怎么画网络图_作为数学老师,如何使用WPS来绘制几何图?
  15. java注解检验集合对象_Java 对list对象进行属性校验
  16. mac itunes 未能连接到服务器,iPhone 11无法在Mac上连接到iTunes吗?解决方法
  17. 闲置物品交易转让求购发布信息​小程序开发
  18. Python多用户在线聊天系统(Socket网络编程),控制台输出版
  19. 【企业了解】闪迪与西部数据
  20. 示波器测量电源纹波注意事项

热门文章

  1. Android 7.1.1源码下载
  2. Outlook_Hotkey
  3. html中li的圆点,CSS中li圆点样式
  4. C/C++编程日记:简单的C语言实现推箱子小游戏
  5. nofollow标签的写法与作用
  6. 越客汽车美容管理软件
  7. linux 磁盘序列号修改,linux 获取硬盘序列号解决思路
  8. Drupal view实现排序:未来升序,过去降序
  9. 中奖人js滚动效果_jQuery教程 如何实现中奖人员信息向上滚动
  10. vue生命周期是什么?