题目描述
2060年是云南中医学院的百年校庆,于是学生会的同学们搞了一个连续猜谜活动:共有10个谜题,现在告诉所有人第一个谜题,每个谜题的答案就是下一个谜题的线索…成功破解最后一个谜题后,答案就是指向奖励的线索
在所有同学们的努力下,全校同学们获得了最后一个谜题,这个谜题有几十张纸,上面全是密密麻麻的数字以及’.’
第一页内容如下:
1,2,3,4,5,6
4,1,5,2,6,3
2,4,6,1,3,5
1,2,3,4,5,6
———3

1,2,3,4…32


———10

有细心的同学发现,这是对一组1-2n的序列进行如下移动:每次将前n个数字取出,按顺序依次插入到位于n+1,n+2…2n的数字后面,最后的数字表示多少次移动后会变回原来的序列
第二页内容如下:
1,2,3,4…64


———?

1,2,3,4…140


———?

同学们发现,越往后翻,这个序列的长度就越长,前面十几二十个数字的序列同学们还可以一步一步模拟做出来,但是到后来几千甚至上万的长度,就没有办法计算了,甚至中间一步做错,就步步都错。
这个谜题真是太过分了!但是奖励就在眼前,只要计算出所有答案,所有答案就是指引同学们获得奖励的线索,那么现在问题来了,同学们除了发现上面的n=最后那个数字/2之外,没有办法给你任何帮助,而作为一个计算机科学与技术专业的大佬,你自然就成为了同学们心目中拯救他们的英雄,所以你能不能写一个程序,当你知道n是多少的时候,可以直接得出答案呢?

输入
多组测试数据.每组数据的第一行包含一个正整数n(1<= n<=10000).

输出
每组数据输出一行整数表示最少需要经过几次移动能变回原序列,若不能,则输出"-1"

样例输入
复制样例数据
3
16
样例输出
3
10

讲道理乍一看这题以为超级困难,实际上就是一道模拟题。根据题目的意思,每次对2n数列进行一定的操作,问什么时候可以变回原来数列,首先把一些情况写出来
n=2时
1 2 3 4
3 1 4 2
4 3 2 1
2 4 1 3
1 2 3 4

n=4时
1 2 3 4 5 6 7 8
5 1 6 2 7 3 4 8
7 5 3 1 8 6 4 2
8 7 6 5 4 3 2 1
4 8 3 7 2 6 1 5
2 4 6 8 1 3 5 7
1 2 3 4 5 6 7 8

n=5时
1 2 3 4 5 6 7 8 9 10
6 1 7 2 8 3 9 4 10 5
3 6 9 1 4 7 10 2 5 8
7 3 10 6 2 9 5 1 8 4
9 7 5 3 1 10 8 6 4 2
10 9 8 7 6 5 4 3 2 1
5 10 4 9 3 8 2 7 1 6
8 5 2 10 7 4 1 9 6 3
4 8 1 5 9 2 6 10 3 4
2 4 6 8 10 1 3 5 7 9
1 2 3 4 5 6 7 8 9 10

不难发现,每一位数字都是在做重复的变化,数字所在位置乘以二,如果超出了2n就减去2n+1,一直重复这个操作直到回到原位置为止,不难发现所有情况都是有解的,直接忽略输出-1就好,代码也就出来了

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{int n;while(cin>>n){int t=1,cnt=0;do{t*=2;cnt++;if(t>2*n)t-=(2*n+1);}while(t!=1);cout<<cnt<<endl;}return 0;
}

过分的谜题 模拟+思维题相关推荐

  1. 洛谷 1563 玩具谜题——模拟水题

    题目:https://www.luogu.org/problemnew/show/P1563 模拟水题. #include<iostream> #include<cstdio> ...

  2. 今夕何年 模拟 思维题

    今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了"今夕何夕,见此良人"的寂寞感慨. 为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个 ...

  3. 基础算法 —— 模拟思维

    [概述] 模拟,是根据实际问题建立模型,模拟实际按程序走一遍,最终求出答案. 思维,则是与逻辑思维有关,其需要针对题意.数据范围等抽丝剥茧抽离出有用的信息,从而得出一个结果. 对于一般的模拟,直接根据 ...

  4. little w and Soda(思维题)

    链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  5. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  6. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  7. CodeForces-1016C Vasya And The Mushrooms(模拟+思维+前缀和的前缀和) 解题报告 Apare_xzc

    CodeForces-1016C Vasya And The Mushrooms(模拟+思维+二重前缀和 ) 解题报告 xzc 2019/4/7 这周周赛的C题:wyt学姐的恶意   这道题周赛的时候 ...

  8. 2022保育员(高级)考试模拟100题及在线模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序 2022保育员(高级)上岗证题目系保育员(高级)判断题的多种练习模式!2022保育员(高级)考试模拟100题及在线模拟考试依据保育员(高级)考试教材.保育 ...

  9. codeforces 有意思的思维题 1 ~ 15

    codeforces 思维题 1.给定数组,求满足i < j and ai * aj = i + j的数对数量 2.第 i 步向前跳 i 步或后退 1 步 3.给两个点,求正方形的另两个点 4. ...

最新文章

  1. 集锦分享 | 200篇原创笔记,帮助你快速入门Python与机器学习
  2. jenkins运行日志时间与linux,持续集成之Jenkins结合脚本实现代码自动化部署及一键回滚至上一版本...
  3. 金融贷款逾期的模型构建1
  4. 《SpringBoot揭秘:快速构建微服务体系》—第3章3.5节本章小结
  5. bladex自定义分页
  6. STM32----摸石头过河系列(六)
  7. 根据当前日期返回星期数
  8. 腾讯tdsql如何对接mysql,数据库交付运维高级工程师-腾讯云TDSQL(MySQL版)认证考试(TCE)...
  9. 电脑主板上的一些电子元件
  10. 电容器单位及电容器单位换算
  11. 【已解决】vue报错:Parsing error: No Babel config file detected for...
  12. eNews 第二十六期/2007.07
  13. CUDA+ GTX1050ti电脑配置
  14. offsetLeft理解以及MouseEvent接口中的screenX,clientX,pageX,offsetX区别.
  15. redis 十一. IO 多路复用
  16. Java数据类型问题
  17. 在嵌入式板子ARMv7 上利用neon对彩色图转换为灰度图进行加速
  18. 云服务器增加虚拟内存
  19. Adobe Photoshop CC 2019删除的水印或者文字的方法
  20. 论文阅读笔记(11)--- Attention is all you need(Transformer)逐段精读

热门文章

  1. 优步杭州推出顺路接单功能,不久将向全国开放!
  2. PHP 下载远程图片
  3. 让你的 Node.js 应用跑得更快的 10 个技巧
  4. 四步破解大亚DP607超级密码,别的光猫可能也适用!
  5. mysql C where语句_mysql – 在WHERE子句中使用substr的SELECT语句
  6. spring5源码-ioc容器
  7. 封装微信分享到朋友/朋友圈js
  8. linux 修改普通用户的 max user process
  9. 用Eclipse 搭建一个Maven Spring SpringMVC 项目
  10. Docker - 容器编排工具 compose 之安装