题目传送门

题意:给出一个$N \times N \times N$的方块,你可以在每一个$1 \times 1 \times 1的方块上放上一个摄像头,摄像头的监视范围为6个方向的无限远距离。问最少需要多少摄像头,并给出具体方案。$N \leq 2000$


思维题

样例中的放置方法对我们是很有启发的

样例中是这样的一个$2 \times 2 \times 2$的正方体(图不好看qwq)

对于选择的$(1,1,1)$点,它的控制范围是

图真的只能凑合看qwq

我们可以考虑将$N \times N \times N$的方块分为这样的八个部分,其中左上角的正方形代替$2 \times 2 \times 2$的立方体中$(1,1,1)$的作用,右下角的正方形代替$2 \times 2 \times 2$的立方体中$(2,2,2)$的作用

接下来我们就要考虑如何做到让一个正方形能够像$(1,1,1)$一样影响到左边、后面、下面的所有正方形

我们先单独考虑影响后面,因为这样子好讲

考虑如果我们只有一个面(也就是在二维空间上)要怎么放才会最好
肯定是下面这样

可是如果我们每一层都这么放肯定是无法满足条件的

所以我们考虑在接下来每一层在上一层的基础上每个往下移一格

也就是说第二层与第三层像下面的左图和右图一样放置

就可以满足要求了

利用一些空间想象能力可以想到:对于右边和下面来说都是满足条件的,所以我们只需要$O(\text{边长}^2)$就可以构造一个满足条件的正方体了。

设某一个正方形边长为$x$,那么我们总共需要的摄像头就是$x^2+(N-x)^2$,可以知道$x=\frac{N}{2}$时使用的摄像头最少,为$(\frac{N}{2})^2+(\frac{N + 1}{2})^2$

方案就像上面一样输出就行了,注意输出优化

 #include<bits/stdc++.h>
 using namespace std;

 ];
 inline void print(int x , char c = '\n'){
     ;
     while(x){
         output[dirN++] = x % ;
         x /= ;
     }
     while(dirN)
         putchar(output[--dirN] + );
     putchar(c);
 }

 int main()
 {
     int N;
     cin >> N;
     print((N / ) * (N / ) + ((N + ) / ) * ((N + ) / ));
      ; i <= N /  ; i++)
          ; j <= N /  ; j++){
             print(i , ' ');
             print(j , ' ');
             print((i + j - ) % (N / ) + );
         }
      ; i <= (N + ) /  ; i++)
          ; j <= (N + ) /  ; j++){
             print(N - i +  , ' ');
             print(N - j +  , ' ');
             print(N - (i + j - ) % ((N + ) / ));
         }
      ;
 }

LOJ564 613的天网 构造的更多相关文章

  1. 实验吧_密码忘记了(vim编辑器+代码审计)&天网管理系统(php弱比较+反序列化)

    密码忘记了 一开始尝试了各种注入发现都无效,在网页源码中找到了admin 的地址,输入地址栏发现并没有什么有用的信息,随便输个邮箱,网页返回了一个地址 ./step2.php?email=youmai ...

  2. 实验吧CTF天网管理系统

    天网你敢来挑战嘛 格式:ctf{ } 解题链接: http://ctf5.shiyanbar.com/10/web1/ 打开链接后,嗯,光明正大的放出账号密码,肯定是登不进的,查看源代码 看来是和md ...

  3. Codeforces Round #339 (Div. 1) C. Necklace 构造题

    C. Necklace 题目连接: http://www.codeforces.com/contest/613/problem/C Description Ivan wants to make a n ...

  4. 【实验吧】因缺思汀的绕过&&拐弯抹角&&Forms&&天网管理系统

    <?php error_reporting(); if (!isset($_POST['uname']) || !isset($_POST['pwd'])) { echo '<form a ...

  5. 实验吧之【Forms、天网管理系统】

    Forms 原题链接 http://ctf5.shiyanbar.com/10/main.php Form 其实是个提示,代表html表单 F12 查看源码,发现 <input name=&qu ...

  6. 学习笔记:Maven构造版本号的方法解决浏览器缓存问题

    需要解决的问题 在做WEB系统开发时,为了提高性能会利用浏览器的缓存功能,其实即使不显式的申明缓存,现代的浏览器都会对静态文件(js.css.图片之类)缓存.但也正因为这个问题导致一个问题,就是资源的 ...

  7. 一步步构造自己的vue2.0+webpack环境

    前面vue2.0和webpack都已经有接触了些(vue.js入门,webpack入门之简单例子跑起来),现在开始学习如何构造自己的vue2.0+webpack环境. 1.首先新建一个目录vue-wk ...

  8. About 静态代码块,普通代码块,同步代码块,构造代码块和构造函数的纳闷

    构造函数用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种.特点:1:该函数的名称和所在类的名称相同.2:不需要定义返回值类型.3:该函数没有具体的返回值.记住:所有对象创 ...

  9. Eos开发——构造查询条件

    1.ajax 方式 var data = { orgid :orgid,year:year ,month: month,type:type,sortField:'sellEmpname' ,sortO ...

随机推荐

  1. Linux 学习笔记之超详细基础linux命令 Part 4

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3----------------- ...

  2. linux上部署engineercms、docker和onlyoffice实现文档协作

    等了好久,这次终于下决心在局域网部署了linux系统,并安装docker和load了onlyoffice,利用engineercms进行资料管理和文档协作. 我整理了完整文档,见我的网盘. engin ...

  3. 解决ArrayList线程不安全

    前些天做项目时,程序出现意外的问题,经后来分析是使用ArrayList这个线程不安全的方法导致 解决这个问题通常有两种方法(个人认为) 一:使用synchronized关键字,这个大家应该都很熟悉了, ...

  4. Fiddler抓包使用教程-模拟低速网络环境

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/73467267 本文出自[赵彦军的博客] 在无线测试中,网络测试是必不可少的环节,通 ...

  5. centos7安装rabbitmq 总结

    centos7下安装rabbitmq 折腾了三天最后做了以下总结 先查看一电脑名  :示例 #hostname name 查看一下hosts配置文件:如果如下结果,就要修改下 #cat /etc/ho ...

  6. Windows 系统光盘刻录教程-光盘怎样刻录?刻录数据光盘用"轨道一次写入"还是"光盘一次写入"?

    刻录光盘需要 DVD-RW 的光驱,并且光盘需要 DVD-R 的光盘用于刻录.刻录工具可以使用https://cn.ultraiso.net/ 来进行刻录.选择软件目录 中 工具 ,选择 刻录光盘映像 ...

  7. centos6.9NAT网络模式

    1.对虚拟机进行设置,点击该虚拟机的设置在网络适配器下将网络连接设置为NAT模式. 2.对虚拟机进行设置,点击虚拟机左上方的编辑-->虚拟网络编辑器,将WMnet信息设置为NAT模式,其它的无需 ...

  8. 实战:阿里巴巴 DevOps 转型后的运维平台建设

    导读:阿里巴巴DevOps转型之后,运维平台是如何建设的?阿里巴巴高级技术专家陈喻结合运维自身的理解,业务场景的分析和业界方法论的一些思考,得出来一些最佳实践分享给大家.   前言   “我是这个应用 ...

  9. Python进阶(一)

    完成慕课网的python基础学习以后,大约花了三天时间,平均每天一个小时,总结了一些比较好的例题和思想方法,下面来学习python进阶吧 参考廖雪峰官方课程 函数 python官方函数调用文档 定义默 ...

  10. django知识点回顾(上)

    Django---知识点: 1. 配置文件: media: avatar = models.FileField(upload_to='avatar')#数据库里的model MEDIA_ROOT=os ...