[测试题]打地鼠

Description

小明听说打地鼠是一件很好玩的游戏,于是他也开始打地鼠。地鼠只有一只,而且一共有N个洞,编号为1到N排成一排,两边是墙壁,小明当然不可能百分百打到,因为他不知道地鼠在哪个洞。小明只能在白天打地鼠,而且每次打了都觉得好累,感觉再也不会打了,必须休息到第二天才能再次打地鼠,也就是说他每天只有一次打地鼠的机会。

地鼠非常聪明,为了尽可能的不被打到,它每天晚上都会跑向相邻的两个洞中的一个,如果一边是墙壁就只有往另一边跑,而且它很固执,每天晚上肯定会跑,也就是说不会连续呆在同一个洞。

尽管小明很累,但是他明白要想拿到一等奖,就必须打到地鼠,所以他想知道怎样才能在最短的天数内保证肯定打到地鼠。

Input

输入文件mouse只有一行,该行有一个整数N,表示N个洞并排在一起。地鼠在随机一个洞。

Output

输出文件mouse.out只有一行,该行有一个整数,表示小明肯定能打中至少需要的天数。

Sample Input

4

Sample Output

4

Hint

40% n<=10

100% n<=100.

题解

   这道题首先是要考虑怎样才能够保证一定能够打中。如果每天选择洞的规律和地鼠移动的规律一样,也就是每天都选前一天相邻的一个洞,那么可以发现,每次你选择的洞口和地鼠所在洞口的距离要么不变,要么增加二或者减少二,按这样从一边墙壁检查到另一边墙壁,如果没有发现地鼠,那就说明地鼠的初始位置和你的初始检查距离为奇数,这个时候再重复检查一次你刚检查过的洞口,那么因为地鼠必须要移动,你们的距离就修改成了偶数,这样再从另一边检查回来,就保证一定能够发现地鼠。这样算下来的结果是$2N$。

  但是可以再分析一下,第一遍扫描的$N$次的意义在与检查你和地鼠的距离是否为偶数,第二次的意义在于把奇数变为偶数。那么第一次完全可以只从$N-1$扫描到$2$(因为地鼠如果在$N$号洞或者$1$号洞与你的距离都为奇数,和第一次的任务没有关系),第二次也从$2$扫描到$N-1$(因为距离如果是偶数那么相遇时肯定是地鼠与你相向运动,也就是地鼠从相遇点后面过来的,所以不可能会在$1$号和$N$号洞相遇)。最后再考虑只有$1$,和$2$两个洞这两种特殊情况。

来自@Z-Y-Y-S的一个例子:

(感谢@Z-Y-Y-S!!)

 

 1 //It is made by Awson on 2017.9.19
 2 #include <map>
 3 #include <set>
 4 #include <cmath>
 5 #include <ctime>
 6 #include <queue>
 7 #include <stack>
 8 #include <cstdio>
 9 #include <string>
10 #include <vector>
11 #include <cstdlib>
12 #include <cstring>
13 #include <iostream>
14 #include <algorithm>
15 #define LL long long
16 #define Max(a, b) ((a) > (b) ? (a) : (b))
17 #define Min(a, b) ((a) < (b) ? (a) : (b))
18 #define Abs(a) ((a) < 0 ? (-(a)) : (a))
19 #define lowbit(x) ((x)&(-(x)))
20 using namespace std;
21 
22 int n;
23 void work() {
24     if (n <= 2) printf("%d\n", n);
25     else printf("%d\n", 2*(n-2));
26 }
27 int main() {
28     while (~scanf("%d", &n))
29         work();
30     return 0;
31 }

 

转载于:https://www.cnblogs.com/NaVi-Awson/p/7553606.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重学TCP协议(2) TCP 报文首部

1. TCP 报文首部 1.1 源端口和目标端口 每个TCP段都包含源端和目的端的端口号&#xff0c;用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接 端口号分类 熟知端口号&#xff08;well-known port&#xff09;已登记的端口&am…

机器学习 预测模型_使用机器学习模型预测心力衰竭的生存时间-第一部分

机器学习 预测模型数据科学 &#xff0c; 机器学习 (Data Science, Machine Learning) 前言 (Preface) Cardiovascular diseases are diseases of the heart and blood vessels and they typically include heart attacks, strokes, and heart failures [1]. According to the …

重学TCP协议(3) 端口号及MTU、MSS

1. 端口相关的命令 1.1 查看端口是否打开 使用 nc 和 telnet 这两个命令可以非常方便的查看到对方端口是否打开或者网络是否可达。如果对端端口没有打开&#xff0c;使用 telnet 和 nc 命令会出现 “Connection refused” 错误 1.2 查看监听端口的进程 使用 netstat sudo …

Diffie Hellman密钥交换

In short, the Diffie Hellman is a widely used technique for securely sending a symmetric encryption key to another party. Before proceeding, let’s discuss why we’d want to use something like the Diffie Hellman in the first place. When transmitting data o…

如何通过建造餐厅来了解Scala差异

I understand that type variance is not fundamental to writing Scala code. Its been more or less a year since Ive been using Scala for my day-to-day job, and honestly, Ive never had to worry much about it. 我了解类型差异并不是编写Scala代码的基础。 自从我在日…

组织在召唤:如何免费获取一个js.org的二级域名

之前我是使用wangduanduan.github.io作为我的博客地址&#xff0c;后来觉得麻烦&#xff0c;有把博客关了。最近有想去折腾折腾。先看效果&#xff1a;wdd.js.org 如果你不了解js.org可以看看我的这篇文章:一个值得所有前端开发者关注的网站js.org 前提 已经有了github pages的…

linkedin爬虫_您应该在LinkedIn上关注的8个人

linkedin爬虫Finding great mentors are hard to come by these days. With so much information and so many opinions flooding the internet, finding an authority in a specific field can be quite tough.这些天很难找到优秀的导师。 互联网上充斥着如此众多的信息和众多…

重学TCP协议(4) 三次握手

1. 三次握手 请求端&#xff08;通常称为客户&#xff09;发送一个 S Y N段指明客户打算连接的服务器的端口&#xff0c;以及初始序号。这个S Y N段为报文段1。服务器发回包含服务器的初始序号的 S Y N报文段&#xff08;报文段2&#xff09;作为应答。同时&#xff0c;将确认序…

java温故笔记(二)java的数组HashMap、ConcurrentHashMap、ArrayList、LinkedList

为什么80%的码农都做不了架构师&#xff1f;>>> HashMap 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK&#xff08;Java Developmet Kit&#xff09;版本的更新&#xff0c;JDK1.8对HashMap底层的实现进行了优化&#xff0c;例…

前置交换机数据交换_我们的数据科学交换所

前置交换机数据交换The DNC Data Science team builds and manages dozens of models that support a broad range of campaign activities. Campaigns rely on these model scores to optimize contactability, volunteer recruitment, get-out-the-vote, and many other piec…

在Centos中安装mysql

下载mysql这里是通过安装Yum源rpm包的方式安装,所以第一步是先下载rpm包 1.打开Mysql官网 https://www.mysql.com/, 点击如图选中的按钮 点击如图框选的按钮 把页面拉倒最下面,选择对应版本下载,博主这里用的是CentOS7 下载完成后上传到服务器,由于是yum源的安装包,所以…

Docker 入门(1)虚拟化和容器

1 虚拟化 虚拟化是为一些组件&#xff08;例如虚拟应用、服务器、存储和网络&#xff09;创建基于软件的&#xff08;或虚拟&#xff09;表现形式的过程。它是降低所有规模企业的 IT 开销&#xff0c;同时提高其效率和敏捷性的最有效方式。 1.1 虚拟化用于程序跨平台兼容 要…

量子相干与量子纠缠_量子分类

量子相干与量子纠缠My goal here was to build a quantum deep neural network for classification tasks, but all the effort involved in calculating errors, updating weights, training a model, and so forth turned out to be completely unnecessary. The above circu…

Python -- xlrd,xlwt,xlutils 读写同一个Excel

最近开始学习python,想做做简单的自动化测试&#xff0c;需要读写excel,然后就找到了xlrd来读取Excel文件&#xff0c;使用xlwt来生成Excel文件&#xff08;可以控制Excel中单元格的格式&#xff09;&#xff0c;需要注意的是&#xff0c;用xlrd读取excel是不能对其进行操作的&…

知识力量_网络分析的力量

知识力量The most common way to store data is in what we call relational form. Most systems get analyzed as collections of independent data points. It looks something like this:存储数据的最常见方式是我们所谓的关系形式。 大多数系统作为独立数据点的集合进行分析…

SCCM PXE客户端无法加载DP(分发点)映像

上一篇文章我们讲到了一个比较典型的PXE客户端无法找到操作系统映像的故障&#xff0c;今天再和大家一起分享一个关于 PXE客户端无法加载分发点映像的问题。具体的报错截图如下&#xff1a;从报错中我们可以看到&#xff0c;PXE客户端已经成功的找到了SCCM服务器&#xff0c;并…

Docker 入门(2)技术实现和核心组成

1. Docker 的技术实现 Docker 的实现&#xff0c;主要归结于三大技术&#xff1a; 命名空间 ( Namespaces )控制组 ( Control Groups )联合文件系统 ( Union File System ) 1.1 Namespace 命名空间可以有效地帮助Docker分离进程树、网络接口、挂载点以及进程间通信等资源。L…

marlin 三角洲_带火花的三角洲湖:什么和为什么?

marlin 三角洲Let me start by introducing two problems that I have dealt time and again with my experience with Apache Spark:首先&#xff0c;我介绍一下我在Apache Spark上的经历反复解决的两个问题&#xff1a; Data “overwrite” on the same path causing data l…

eda分析_EDA理论指南

eda分析Most data analysis problems start with understanding the data. It is the most crucial and complicated step. This step also affects the further decisions that we make in a predictive modeling problem, one of which is what algorithm we are going to ch…

基于ssm框架和freemarker的商品销售系统

项目说明 1、项目文件结构 2、项目主要接口及其实现 &#xff08;1&#xff09;Index&#xff1a; 首页页面&#xff1a;展示商品功能&#xff0c;可登录或查看商品详细信息 &#xff08;2&#xff09;登录&#xff1a;/ApiLogin 3、dao层 数据持久化层&#xff0c;把商品和用户…