令$(x,y,z)$为狙击手的坐标,其攻击范围即以$(x,y,z)$为中心的$(2k)^{3}$​的立方体

为了避免$k$的影响(二分答案会多一个$\log$),不妨将其变为以$(x,y,z)$为左下角的$(2k)^{3}$​​​的立方体,注意到这样仅仅是实现了平移,并不影响答案

由此,注意到任意时刻,$x,y$和$z$都不应小于剩余点中对应维坐标的最小值,同时若不是最小值调整为最小值显然也不劣,因此不妨假设都恰为最小值

进一步的,显然最终的$k$必然要能消灭其中一个敌人,否则无法移动,那么也就永远不能消灭这些敌人,因此不妨将答案对最小的$k$(能攻击到其中一个敌人)取$\max$,并消灭对应的敌人

关于这个过程,可以用三个set来维护,并且每一次至少消灭一个敌人,即至多$o(n)$次

总复杂度为$o(n\log n)$,可以通过

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 500005
4 struct Data{
5 int x,y,z;
6 }a[N];
7 set<pair<int,int> >Sx,Sy,Sz;
8 int t,n,ans;
9 int dis(Data x,Data y){
10 return max(max(x.x-y.x,x.y-y.y),x.z-y.z);
11 }
12 void del(int k){
13 Sx.erase(make_pair(a[k].x,k));
14 Sy.erase(make_pair(a[k].y,k));
15 Sz.erase(make_pair(a[k].z,k));
16 }
17 int main(){
18 scanf("%d",&t);
19 while (t--){
20 scanf("%d",&n);
21 ans=0,Sx.clear(),Sy.clear(),Sz.clear();
22 for(int i=1;i<=n;i++){
23 scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
24 Sx.insert(make_pair(a[i].x,i));
25 Sy.insert(make_pair(a[i].y,i));
26 Sz.insert(make_pair(a[i].z,i));
27 }
28 while (!Sx.empty()){
29 int x=(*Sx.begin()).second;
30 int y=(*Sy.begin()).second;
31 int z=(*Sz.begin()).second;
32 Data o=Data{a[x].x,a[y].y,a[z].z};
33 ans=max(ans,min(min(dis(a[x],o),dis(a[y],o)),dis(a[z],o)));
34 if (dis(a[x],o)<=ans)del(x);
35 if (dis(a[y],o)<=ans)del(y);
36 if (dis(a[z],o)<=ans)del(z);
37 }
38 printf("%d\n",(ans+1>>1));
39 }
40 return 0;
41 }

[hdu7032]Command and Conquer: Red Alert 2的更多相关文章

  1. A Complete List of .NET Open Source Developer Projects

    http://scottge.net/2015/07/08/a-complete-list-of-net-open-source-developer-projects/?utm_source=tuic ...

  2. .NET 开源开发项目【翻译】

    原文地址 本文列出了 .NET 开源开发项目(open source developer projects).意在包括对开发过程的所有方面有所帮组的项目.对于消费项目(consumer project ...

  3. github 排名前100的项目

    dotnet/roslyn The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Bas ...

  4. alert执行顺序

    <p><span id="span1">Hello World!</span></p> <script type=" ...

  5. alert 执行顺序问题

    <p><span id="span1">Hello World!</span></p> <script type=" ...

  6. Dynamics 365 CRM Connected Field Service 自动发送command

    上期降到了怎样部署connected field service(CFS) 我们假设现在IoT 设备是温度监控器, 当温度触发我们之前预设的温度值, IoT会通过IoT Hub 发送IoT Alert ...

  7. ARTIFICIAL INTELLIGENCE FOR GAMES (Ian Millington / John Funge 著)

    相关网站:http://www.ai4g.com PART I AI AND GAMESCHAPTER1 INTRODUCTIONCHAPTER2 GAME AIPART II TECHNIQUESC ...

  8. Randy Pausch’s Last Lecture

          he University of Virginia American Studies Program 2002-2003.                     Randy Pausch ...

  9. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

随机推荐

  1. vue 快速入门 系列 —— vue-router

    其他章节请看: vue 快速入门 系列 Vue Router Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌. 什么是路由 ...

  2. 【原创】xenomai 在X86平台下中断响应时间测试

    1.中断响应时间 实时操作系统的意义就在于能够在确定的时间内处理各种突发的事件,而中断这些事件.系统抢占调度的触发点,因而衡量嵌入式实时操作系统的最主要.最具有代表性的性能指标参数无疑是中断响应时间. ...

  3. 从一个舒服的姿势插入 HttpClient 拦截器技能点

    马甲哥继续写一点大前端,阅读耗时5 minute,行文耗时5 Days 今天我们来了解一下如何拦截axios请求/响应? 这次我们举一反三,用一个最舒适的姿势插入这个技能点. axios是一个基于 p ...

  4. Java编译运行环境讨论(复古但能加深对Java项目的理解)

    Java编译运行环境讨论(复古但能加深对Java项目的理解) 如今我们大多数情况都会使用IDE来进行Java项目的开发,而一个如今众多优秀的IDE已经能够帮助我们自动的部署并调试运行我们的Java程序 ...

  5. 开发函数计算的正确姿势——OCR 服务

    作者 | 杜万(倚贤) 阿里云技术专家 简介 首先介绍下在本文出现的几个比较重要的概念: OCR(光学字符识别):光学字符识别(Optical Character Recognition, OCR)是 ...

  6. Java标识符和关键字的区别!java基础 java必学

    任何计算机语言都离不开标识符和关键字,那我们就来简单讲一下他们两者的区别,希望有助于大家的的理解!本篇文章干货满满,如果你觉得难懂的话可以看下高淇老师讲的Java300集的教学视频,分选集,深度剖析了 ...

  7. Mysql双主双从高可用集群的搭建且与MyCat进行整合

    1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...

  8. 如何在前端通过JavaScript创建修改CAD图形

    背景 在之前的博文CAD图DWG解析WebGIS可视化技术分析总结.CAD_DWG图Web可视化一站式解决方案-唯杰地图-vjmap中讲解了如何把CAD的DWG格式的图纸Web可视化的方案,那在Web ...

  9. SharkCTF2021 fastcalc题记

    web --> python脚本编写练习. 直接访问发现全是乱码: 看包发现Content-Type里面没有charset=utf-8. 于是用python访问一下,用.encoding='ut ...

  10. 【c++ Prime 学习笔记】第1章 开始

    1.1 编写一个简单的程序 int main() { return 0; } 函数 包含4部分: 返回类型(return type) 函数名(function name) 形参列表(parameter ...