这道题的题目描述灰常简单,第一眼看以为是一道十分水的题目;

但是!!!(我仔细一看也没有发现这背后隐藏着可怕的真相~)

下面给出题目描述:

给出一个整数x,你可以对x进行两种操作。
1、将x变成4x+3
2、将x变成8x+7
问,最少通过多少次操作,使得x是1000000007的倍数?

没错,就是这么坑!当我仔细读完题目后本还抱有几分希望(也许可以水过)

但是!!!没错我又一次用了“但是”这个词;

当我看到数据范围时我几乎就放弃了,只能用暴力来骗分了,仅仅只水到了50分(也知足了)

【输入格式】

一行,一个整数x(1<=x<=1000000006)。

【输出格式】

一行,表示最少的操作步数。保证答案不超过10^5。
如此多的可能性,使我敢打赌这绝对是一道数学题,而且是我想不到的那种;真是让人感到没有办法。。

而更加令人吃惊的在后面:我以为这道题应该会用到我所不能触及的只是,然而,只是一个十分巨大的脑洞!

没错,学长仅仅只是在黑板(白板?)上写下了两个式子,如下:

##

8( 8x + 7 ) + 7 = 64x + 63;
4( 4( 4x + 3 ) + 3 ) + 3 = 64x + 63;

然后再稍微的推导一下就可以得到:

2( 2x + 1 ) + 1 = 4x + 3;
2( 2( 2x + 1 ) + 1 ) + 1 = 8x + 7;

真是令人感到吃惊!这意味着 当我们运行了两次 8x+7 运算时,就相当于运行了三次 4x+3 运算;

那么这道题目就变的简单了许多,我们可以得到结论:4x+3的运算次数必然不会达到3次以上,因为如果有三次 4x+3 运算便可以用两次 8x+7 运算来代替(题目要求用尽可能少的次数来解);

而为了方便一些,我们便统一的用 2x+1 来代替这两种运算!

1
2
3
4
5
6
while(true)
{
大专栏  天哪!毫无思绪!令人感到恐惧的数学(水题?)(TOWQs)span class="line"> num=(num*2+1)%1000000007;
ans++;
if(num==0) break;
}

这就简单了许多,下面就可以上正解的代码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include&lt;cstdio&gt;
using namespace std;
long long ans,num;
int ()
{
scanf("&amp;lld",&amp;n);
while(true)
{
num=(num*2+1)%1000000007;
ans++;
if(num==0) break;
}
printf("%lldn",(ans-1)/3+1);
return 0;
}

天哪!毫无思绪!令人感到恐惧的数学(水题?)(TOWQs)的更多相关文章

  1. PPT设计宝典!十招教你做出拿得出手的PPT

    据说上班用 excel 的比 word 的工资高,用 ppt 的比用 excel 的工资高.无论如何,在职场演讲汇报中,PPT 扮演着至关重要的角色. 在本文我们将用 10 个超级技巧来解决糟糕的演示 ...

  2. PPT设计宝典!十招教你做出拿手的PPT

    据说上班用 excel 的比 word 的工资高,用 ppt 的比用 excel 的工资高.无论如何,在职场演讲汇报中,PPT 扮演着至关重要的角色.  在本文我们将用 10 个超级技巧来解决糟糕的演 ...

  3. [转][darkbaby]任天堂传——失落的泰坦王朝(下)

    即使是日本业界人士也对1999年发生的“口袋妖怪所有权风波”知之甚少,实际上这个事件的结局足以改变游戏产业未来数十年的势力图,山内溥凭借着个人的睿智让任天堂再次渡过了命运的暗礁,而另一颗曾经炙手可热的 ...

  4. 写在OI退役后和高中毕业前的一些话

    更新日志: 2017.02.13 开坑 2017.02.13 更新[零][壹] 2017.02.14 更新[贰] 2017.02.26 更新[叁][肆] 2017.03.04 锅多如狗,停更一周 20 ...

  5. VR与AR的发展趋势分析

    概要 你是否想象过与神秘的深海生物近距离接触?你是否梦想过穿戴钢铁侠那样的超先进科技装备成为超级英雄?你又是否幻想过与梦中的女神面对面的交流?这些可能在以前都只能是存在于脑海中的幻想,可是在如今有一项 ...

  6. 【黑金原创教程】【Modelsim】【第五章】仿真就是人生

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  7. words2

    餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘 ...

  8. 为什么很多人坚信“富贵险中求”?

    之家哥 2017-11-15 09:12:31 微信QQ微博 下载APP 摘要 网贷之家小编根据舆情频道的相关数据,精心整理的关于<为什么很多人坚信"富贵险中求"?>的 ...

  9. 使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术标准<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

随机推荐

  1. 对于 C语言的扩展和JAVA的重载理解

    哎,又被学长看成笨蛋了  ,先前学习java,自己真是什么都要忘了,弄得自己连java最重要的概念--重载,都不知道是啥,还厚着脸皮和学长说  是函数名字一样  ,但是就是函数里面的参数和参数类型不一 ...

  2. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:读取MNIST手写图片数据写入的TFRecord文件

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...

  3. UML-业务规则

    样例:

  4. Perl: print @globbing."\n"; 和 print @globbing; 不一样,一个已经转换为数组元素个数了

    48 print @globbing."\n"; 输出: 3

  5. ac_查看每个用户登陆服务器所使用的时间

    ac 如果你想知道每个用户登录服务器所使用的时间,你可以使用 ac 命令.这个命令需要你安装acct 包(Debian)或 psacct 包(RHEL,Centos). 如果我们想知道所有用户登陆服务 ...

  6. FPGA 状态机-序列检测器verilog

    实现功能:检测出串行输入数据4位Data二进制序列0101,当检测到该序列的时候,out=1,否则out=0 (1)给出状态编码,画出状态图 (2)门电路实现 (3)verilog实现 首先规定Q3Q ...

  7. Kafka(五) —— Kafka源码本地调试

    搭建环境 安装scala 安装gradle 在kafka源码的根目录执行命令 gradle wrapper gradle idea 打开IDEA,File -> Open -> kafka ...

  8. SpringBoot开发二十-Redis入门以及Spring整合Redis

    安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis 的常用命 ...

  9. ExecuteScalar()方法的使用

    ExecuteScalar()方法的作用是: 执行查询,并返回查询所返回的结果集中第一行的第一列.所有其他的列和行将被忽略. 1.返回的是一个object类型,也就是说是所有数据类型的基类,可根据se ...

  10. JDK和Spring中的设计模式

    创建型 1)工厂方法 Collection.iterator() 由具体的聚集类来确定使用哪一个Iterator 2)单例模式 Runtime.getRuntime() 3)建造者模式 StringB ...