题意

给定n颗炸弹,每颗炸弹有一个左边x,y以及一个爆炸时间,一个炸弹爆炸会牵引不超过k距离的其它炸弹爆炸(如下图k=2时),每秒可以点燃一个炸弹,问最少多少秒所有炸弹爆炸。

题解

假如没有牵连爆炸这个限制,这道题就变成一个简单的贪心问题,排序每次选择爆炸时间最长的一个点燃,当时间已经比下一个时间长时就是答案,那么有了牵连爆炸的限制后该怎么做呢?其实我们可以把会一起爆炸的炸弹看成一个炸弹,也就可以用并查集来维护,然后它们爆炸的时间就是集合中爆炸时间最短的那个。再之后就变成那个简单的贪心问题了。

#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fr first
#define sc second
#define ll long long
const long long inf = 1e18;
long long n, d, nn, a[200069], dsu[200069], ex[200069];
pair<pair<long long, long long>, long long> as[200069];//存储每颗雷的信息
long long fd(long long x)//并查集
{if (dsu[x] != x){dsu[x] = fd(dsu[x]);}return dsu[x];
}
int main()
{long long t, rr, i, ii, l, y, x, p, z;scanf("%lld", &t);//组数for (rr = 0; rr < t; rr++){scanf("%lld%lld", &n, &d);//n颗雷 半径为d的地雷会爆炸for (i = 1; i <= n; i++){scanf("%lld%lld%lld", &x, &y, &a[i]);//a存储下班为i的爆炸时间为ias[i] = { {x,y},i };//雷的信息,y,x,第i颗雷dsu[i] = i;//并查集初始化}for (ii = 0; ii < 2; ii++)//两次,一次跑x一次跑y{sort(as + 1, as + n + 1);//根据第一坐标优先其次第二坐标优先在者编号优先从小到大排序for (i = 1; i <= n; i++){y = as[i].fr.fr;//x/yx = as[i].fr.sc;//y/xp = as[i].sc;//当前 编号if (i > 1 && y == as[i - 1].fr.fr && x - as[i - 1].fr.sc <= d)//一个坐标相同,另外一个坐标相差为d就为一个集合的雷{l = as[i - 1].sc;a[fd(p)] = min(a[fd(p)], a[fd(l)]);//爆炸时间为较小的那个dsu[fd(l)] = fd(p);//合并成一个集合p}}for (i = 1; i <= n; i++)//交换x,y坐标再跑一次{swap(as[i].fr.fr, as[i].fr.sc);}}//接下来的问题就变成了有nn个爆炸时间不同的雷,每秒可以点爆一个,最快几秒可以点爆完成,贪心的去做,每次都点爆离当前时间最小的一颗雷即可nn = 0;for (i = 1; i <= n; i++){if (fd(i) == i){nn++;ex[nn] = a[i];}}sort(ex + 1, ex + nn + 1, greater<long long>());ex[nn + 1] = -inf;for (i = 1; i <= nn; i++){if (ex[i + 1] <= i - 1)break;}printf("%lld\n", i-1);}
}

Unusual Minesweeper相关推荐

  1. Codeforces Round #762 (Div. 3)

    E. MEX and Increments F. Let's Play the Hat? G. Unusual Minesweeper H. Permutation and Queries  用个优先 ...

  2. python扫雷 广度优先_Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)...

    Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...

  3. python3扫雷代码_GitHub - pantaduce/minesweeper: Python代码编写的扫雷游戏

    Minesweeper(扫雷) 这是一个由Python编写的扫雷游戏,基于tkinter/Tkinter开发,支持python2和python3. 功能 概述 基本功能:左键扫雷,右键标记 记录游戏步 ...

  4. java版扫雷下载_Java 实现扫雷游戏(MineSweeper)

    package com.kerence.mine.data_structure; /** * 雷块类的属性和操作 * * @download:http://www.codefans.net * @au ...

  5. 图像识别工程师 VS The application has requested the Runtime to terminate it in an unusual way.

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 The application has requ ...

  6. This application has requested the Runtime to terminate it in an unusual way. Please contact the app

    在做机器学习实战第九章的实验,使用Tkinter和matplotlib绘制回归树和模型树时,代码没有问题但是抛出了如下错误 ValueError: Masked arrays must be 1-D ...

  7. UVA10189 Minesweeper【Ad Hoc】

    Have you ever played Minesweeper? It's a cute little game which comes within a certain Operating Sys ...

  8. codeforces 900D. Unusual Sequences(莫比乌斯反演)

    900D. Unusual Sequences(莫比乌斯反演) 题目链接:传送门 题意: 给出 xxx 和 yyy ,求序列形如 a1,a2..ana_1,a_2..a_na1​,a2​..an​ 满 ...

  9. Unusual Competitions

    Unusual Competitions A bracketed sequence is called correct (regular) if by inserting "+" ...

最新文章

  1. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 头文件定义 | 头文件导入限制 | 兼容 C++ 语言 | 函数形参输入输出属性注释)
  2. Dubbo和SpringCloud的区别
  3. 黑马2018年JavaEE课程大纲
  4. 怒爬某 Hub 资源就为撸了一个鉴黄平台
  5. 【ZOJ 1964】【尺取】Bound Found【暑期 No.3】
  6. Windows使用思岚科技的rpLidar的A2型号
  7. 游戏对战平台研究终结篇【转】
  8. 中国移动和路由AP218免拆机刷机教程
  9. ioi 赛制_杨骏昭IOI2019参赛总结
  10. 125KHz 100cm ID 读卡电路_二维码门禁读卡器动态二维码扫描器二维码刷卡读头介绍...
  11. 基于hadoop下的使用map reduce分布式系统的高考高频词汇统计
  12. 【案例】电影数据分析
  13. 理解分布式一致性:Paxos协议之Multi-Paxos
  14. 让你的发动机与NXP Kinetis汽车套件一起运行---凯利讯半导体
  15. From tomorrow
  16. 深度学习基础-机器学习基本原理
  17. 网络安全应急响应技术实战指南(奇安信)
  18. 学习笔记:全局变量定义“无须”初始化,局部变量必须初始化
  19. matlab点云数据投影_Matlab实现点云数据(文本格式)的平行投影
  20. 本地主机如何访问虚拟主机服务器

热门文章

  1. 第一章 Web应用程序开发基础
  2. 信息可视化大屏展板(附下载连接)
  3. python语句和语法介绍
  4. 无向图的Depth-first search和Breadth-first Search
  5. LinkedIn最好工具-领英精灵11.11最低获得方法
  6. 依次输入5个数,求其中的最大值并输出
  7. FFmpeg mov_read_ftyp函数剖析
  8. water sensor水位传感器
  9. C++ Qt高仿QQ影音视频播放器 (一)
  10. Insta360影石递交注册:年营收将超12亿 启明与迅雷为股东