题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2429


比较简单的一道题目。。。

从一棵树出发蹦到其他所有树,实际上,把n-1条边就可以将这n个点连通,而最小生成树的最大权值又是所有生成树中最小的,因此我们需要构造一棵最小生成树,然后将m个猴子的跳跃距离和MST的最大边权比较,统计答案即可。

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <algorithm>
 4
 5 using namespace std;
 6
 7 const int maxm = 505, maxn = 1e3 + 5;
 8
 9 int monkey[maxm], treex[maxn], treey[maxn];
10
11 struct Edge {
12     int u, v;
13     double w;
14     bool operator < (const Edge& rhs) const {
15         return w < rhs.w;
16     }
17 } edge[maxn * maxn / 2];
18
19 inline int pw2(int x) {
20     return x * x;
21 }
22
23 inline double dis(int i, int j) {
24     return sqrt(pw2(treex[i] - treex[j]) + pw2(treey[i] - treey[j]));
25 }
26
27 int m, n, eid, fa[maxn];
28
29 int dj_find(int i) {
30     if (i == fa[i]) return i;
31     else return fa[i] = dj_find(fa[i]);
32 }
33
34 inline void dj_merge(int a, int b) {
35     fa[dj_find(a)] = dj_find(b);
36 }
37
38 inline double kruskal() {
39     for (int i = 1; i <= n; ++i) fa[i] = i;
40     sort(edge + 1, edge + eid + 1);
41     int cnt = 0;
42     for (int i = 1; i <= eid; ++i) {
43         int u = edge[i].u, v = edge[i].v, w = edge[i].w;
44         if (dj_find(u) != dj_find(v)) {
45             dj_merge(u, v);
46             if (++cnt == n - 1) return w;
47         }
48     }
49     return edge[eid].w;
50 }
51
52 int main() {
53     scanf("%d", &m);
54     for (int i = 1; i <= m; ++i) scanf("%d", &monkey[i]);
55     scanf("%d", &n);
56     for (int i = 1; i <= n; ++i) scanf("%d%d", &treex[i], &treey[i]);
57     for (int i = 1; i < n; ++i)
58         for (int j = i + 1; j <= n; ++j) {
59             edge[++eid].u = i;
60             edge[eid].v = j;
61             edge[eid].w = dis(i, j);
62         }
63     int ans = 0;
64     double me = kruskal();
65     for (int i = 1; i <= m; ++i)
66         if (monkey[i] >= me) ++ans;
67     printf("%d", ans);
68     return 0;
69 }

AC代码

转载于:https://www.cnblogs.com/Mr94Kevin/p/9903053.html

【BZOJ2429】聪明的猴子相关推荐

  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. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)

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

  5. 洛谷p2504 HAOI2006 聪明的猴子

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

  6. 有多少游客被峨眉山的猴子亲过脸?

    来源|不相及研究所 ID|buuuxiangji 作者|发财金刚 不少游客都是去过峨眉山之后,才发现网上的传言是真的,那里的灵猴比山顶的普贤能更快还愿. 单身的去祈求姻缘,还没等下山,初吻就没了. 即 ...

  7. python猴子分桃问题_用python实现【五猴分桃】问题

    转载链接:https://blog.csdn.net/cy309173854/article/details/78296839 据说"五猴分桃"问题最先是由大物理学家狄拉克提出来的 ...

  8. 用ChatGPT讲一个关于猴子的故事

    今天让ChatGPT编了一个小猴子的故事,效果还不错. 首先设置目标: Goal 1: 讲一个关于猴子的故事 Goal 2: 童话故事 Goal 3: 寓言 Goal 4: 讲给小朋友听的 Goal ...

  9. python猴子分桃_用python实现【五猴分桃】问题

    转载链接:https://blog.csdn.net/cy309173854/article/details/78296839 据说"五猴分桃"问题最先是由大物理学家狄拉克提出来的 ...

  10. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

最新文章

  1. 通俗理解并行性和并发性的区别
  2. TC的handle绿了……菜鸟表示泪流满面
  3. 中原大学 php,中原大学php全集视频教程
  4. android setContentView处理流程
  5. 2019中国(黄石)工业互联网创新发展大会将于11月召开
  6. 【华为云技术分享】云图说|应用编排服务AOS,助力应用上云自动化
  7. jQuery页面滚动右侧浮动导航切换
  8. Centos7 搭建 Socks 服务
  9. bigemap中下载边界_BIGEMAP地图下载器-全能版
  10. ubuntu linux修改ip地址命令,永久修改ubuntu系统MAC和IP地址的方法命令
  11. Monocular Depth Estimation UsingLaplacian Pyramid-Based Depth Residuals翻译
  12. linux服务器之间文件传输scp
  13. 用Excel做饼图的一点技巧
  14. 趁阳光正好,趁微风不噪。趁花儿还未开到荼蘼。
  15. 关于如何连接网络打印机
  16. 思科交换机冗余星形设计,附带sw1核心交换机配置
  17. html(h5)页面实现微信js分享
  18. 360浏览器下载文件成功但文件异常问题
  19. springboot 通过javaCV 实现mp4转m3u8 上传oss
  20. iOS启动优化之——如何使用Xcode Log、App Launch、代码来计算启动时间 Launch Time

热门文章

  1. MySQL心得1--数据库的基本概念
  2. 【转】ASPNET程序中常用的三十三种代码
  3. 震惊!华为对大数据又出新动作!
  4. 【分享】电子科大第一位以第一作者在CVPR上发文的本科生,这个小哥哥用奋斗诠释优秀!...
  5. 20191208_神经网络搭建_缺失值箱型图
  6. 我大意了,刚一放出来就上了牛客网头条了
  7. 每日算法系列【LeetCode 825】适龄的朋友
  8. 深度学习2.0-23.Keras高层接口之模型的加载与保存
  9. 力扣每日一刷 -两个数组的交集II
  10. mysql基础1-数据库安装配置及语句规范