洛谷P2504 [HAOI2006]聪明的猴子题解
记录悲伤
已知猴子的数量以及猴子跳的最大距离
已知数的数量以及树的坐标
最小生成树
每两棵树之间的距离需要枚举来计算
算出最大值之后再与n只猴子进行比较记录答案
需要注意
在使用最小生成树的时候
我们的fa数组是记录的边他存储的是一棵树
结构体存储的信息也是一棵树
最后判断是否已经构成一棵树时
判断的是与m的大小关系
Code:
//I'll knock your block off if you break you word!
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
const int M = ;
int mok[N], cnt, n, m, num = , fa[M], ans, X[M], Y[M];
double sum = -0x3f3f3f3f;
struct node {
int x, y;
double dis;
}e[M];
int read() {
int s = , w = ;
char ch = getchar();
while(!isdigit(ch)) {if(ch == '-') w = -; ch = getchar();}
while(isdigit(ch)) {s = s * + ch - ''; ch = getchar();}
return s * w;
}
double way(int i, int j) {
return sqrt((X[i] - X[j]) * (X[i] - X[j]) + (Y[i] - Y[j]) * (Y[i] - Y[j]));
}
bool cmp(node x, node y) {
return x.dis < y.dis;
}
int find(int x) {
return fa[x] == x ? x : fa[x] = find(fa[x]);
}
int main() {
n = read();
for(int i = ; i <= n; i++) mok[i] = read();
m = read();
for(int i = ; i <= m; i++) X[i] = read(), Y[i] = read();
for(int i = ; i <= m; i++)
for(int j = i + ; j <= m; j++)
e[++cnt].x = i, e[cnt].y = j, e[cnt].dis = way(i, j);
sort(e + , e + + cnt, cmp);
for(int i = ; i <= m; i++) fa[i] = i;
for(int i = ; i <= cnt; i++) {
int fx = find(e[i].x), fy = find(e[i].y);
if(fx != fy) {
fa[fx] = fy;
num++;
sum = max(sum, e[i].dis);
// cout << sum << endl;
}
if(num == m) break;
}
for(int i = ; i <= n; i++) if(mok[i] >= sum) ans++;
printf("%d\n", ans);
return ;
}
谢谢收看, 祝身体健康!
洛谷P2504 [HAOI2006]聪明的猴子题解的更多相关文章
- 洛谷 P2504 [HAOI2006]聪明的猴子
洛谷 P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水 ...
- 洛谷—— P2504 [HAOI2006]聪明的猴子
P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上. ...
- 洛谷——P2504 [HAOI2006]聪明的猴子
P2504 [HAOI2006]聪明的猴子 题目描述 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上. ...
- 洛谷P2504 [HAOI2006]聪明的猴子
#include<bits/stdc++.h> using namespace std; ; ; int n,m,k,ans; double Max; int monkey[maxn]; ...
- 【洛谷P2504】聪明的猴子 最小瓶颈树
题目大意:给定一张 N 个顶点的完全图,边有边权,求该完全图的一棵最小瓶颈树. 最小瓶颈树:一棵最大边权值在同一张图的所有生成树中最小,即:最大边权值最小的生成树,其值为该树的最大边权的权值. 引理1 ...
- [HAOI2006]聪明的猴子 题解
题意: 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上.猴子不会游泳,但跳跃能力比较强,它们仍然可以在 ...
- P2504 [HAOI2006]聪明的猴子
思路 最小生成树中最大的边,边权最小 所以这题就变成最小生成树的板子了,跳跃距离大于最大边权的猴子就是可行的 代码 #include <cstdio> #include <algor ...
- HAOI2006 (洛谷P2341)受欢迎的牛 题解
HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...
- 2429: [HAOI2006]聪明的猴子
2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 448 Solved: 309[Submit][Statu ...
随机推荐
- 【MySQL】MariaDB10.3新特性--闪回查询
MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaD ...
- SpringCloud 别人的主页
https://www.cnblogs.com/xuwujing/ java(28) springBoot(14) 设计模式(14) springcloud(7) hadoop(7) hive(5) ...
- 学习Linq之前必须要了解的扩展方法
本文主要以下面几个方面来详细讲解扩展方法:在C#3.0之前没有扩展方法的状态(或者你不会使用不知道扩展方法的时候).扩展方法的语法及怎么使用.怎么正确的使用扩展方法: 一.首先说一下在C#3.0之前没 ...
- 在<a></a>标签中如何调用javaScript脚本
在日常工作总会遇到在<a>标签中执行js代码的情况 现在做一个总结,希望对大家有一个帮助. 1.a href="javascript:js_method();" 这是我 ...
- 小白开学Asp.Net Core 《八》
小白开学Asp.Net Core <八> — — .Net Core 数据保护组件 1.背景 我在搞(https://github.com/AjuPrince/Aju.Carefree)这 ...
- vim操作:打开多个文件、同时显示多个文件、在文件之间切换
打开多个文件: 1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen 便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开 ...
- vue+element 表格按需合并
这个功能难度感觉一般般吧,记录一下,以后碰到了直接来复制,懒得再写了 效果如下: 前6列是合并,后面的有几行,动态显示几行 重点是在数据处理上面做文章,合并列大家都会,数据处理呢?这样来处理, 我们拿 ...
- OL7.6上RPM方式安装Oracle 19c
设置主机名 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localh ...
- “GIS DICTIONARY A-Z” 查询页面开发(2)——INSERT INTO数据库
今日工作:数据库连接.数据写入 一.数据库连接:使用了pymysql库 from G2_dataClean import defList import pymysql db = pymysql.con ...
- tomcat server.xml 中 host 元素
测试偶然发现: <Host name="127.0.0.1" appBase="webapps" unpackWARs="true" ...