思路1:

找规律,本题若是直接暴力搜索,就是f(n)=2^n-1,然后f(n)%1000000,那么结果会越界;所以考虑用f(n+1)=(2*f(n)+1)%1000000,不过遇到较大数据的时候,会出现超时的情况,毕竟这个结果是线性时间增长的,和输入数据体量的大小有直接关系,所以这里还需要再次考虑优化。通过数据对比发现,当n>10005时,有f(123456)=f(23456)  f(123456789)=f(23456789)=...=f(56789)  即略去高位,剩下五位数。但是还需要考虑的是 if(m%100000<6),需要有m=100000+m%10;如此处理之后就不会超时了。

 #include <iostream>
using namespace std; int num[];
int main(){
int N,m,i;
num[]=;
for(int i=;i<;i++){
num[i] = (*num[i-]+)%;
}
cin>>N;
while(N--){
cin>>m;
if(m>){
if(m%< ){
m = +m%;
}
else{
m = m%;
}
}
cout<<num[m]<<endl;
} }

思路2:

我们知道汉诺塔的公式是f(n)=2^n-1

而f(n)%1000000= (2^n-1)%1000000 = 2^n%100000-1

而2^n%1000000可以用快速幂算法计算,代码如下:

 #include <iostream>
using namespace std; long long fastmod(long long a,long long b,long long c){
long long num=;
a%=c;//这里不进行初始化也是可以的 while(b>){
if(b%==){
num=(num*a)%c;
}
b/=; //这一步将b->log2(b)
a=(a*a)%c;
}
return num;
} int main(){
int n;
cin>>n;
while(n--){
long long m;
cin>>m;
cout<<fastmod(,m,)-<<endl;
}
}

NUOJ 88的更多相关文章

  1. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  2. long l=88;这个表达式是正确的,因为long比int类型大,会发生自动转换

    long l=88;这个表达式是正确的,因为long比int类型大,会发生自动转换

  3. 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient

    [源码下载] 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient 作者:webabcd 介绍重新想象 Windows 8.1 Store ...

  4. 程序清单 8-8 exec函数实例,a.out是程序8-9产生的可执行程序

    /* ============================================================================ Name : test.c Author ...

  5. #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个key的值

    #!/usr/bin/env python #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个ke ...

  6. leetcode 88

    88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as on ...

  7. BestCoder Round #88

    传送门:BestCoder Round #88 分析: A题统计字符串中连续字串全为q的个数,预处理以下或加个cnt就好了: 代码: #include <cstdio> #include ...

  8. iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid

    iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid 在执行iisapp.vbs时,可能会提示如下错误:Windows Script Component - f ...

  9. Part 86 to 88 Talking about Multithreading in C#

    Part 86   Multithreading in C# What is a Process: Process is what the operating system uses to facil ...

随机推荐

  1. Entity Framework 5.0 Code First全面学习

    摘自:http://blog.csdn.net/gentle_wolf/article/details/14004345 不贴图片了,太累. Code First 约定 借助 CodeFirst,可通 ...

  2. 【配置属性】—Entity Framework 对应表字段的类型的设定配置方法

    摘自:http://www.cnblogs.com/nianming/archive/2012/11/07/2757997.html Entity Framework Code First的默认行为是 ...

  3. 对于UDS(ISO14229-2006) 汉译的声明(必读)

    本系列文章系作者个人翻译,最初目的为方便以后阅读和锻炼英语能力,欢迎读者参阅品鉴,本文不正确之处欢迎读者指出. 本文在此声明著作权利:转载必须注明出处,修改必须通知本作者

  4. 【JAVA并发编程实战】10、并发程序的测试

    1.产生随机数 package cn.study.concurrency.ch12; public class Util { public static int xorShift(int y) { / ...

  5. 推荐8个实现 SVG 动画的 JavaScript 库

    SVG 是一种分辨率无关的图形(矢量图形).这意味着它在任何类型的屏幕都不会遭受任何质量损失.除此之外,你可以让 SVG 灵活现一些动画效果.这篇文章就给大家推荐8个实现 SVG 动画的 JavaSc ...

  6. CSS中详解hight属性

    目录结构: // contents structure [-] hight属性值类型一览表 height的%的使用 定义 实例 需要注意的 参考文章 hight属性值类型一览表 value descr ...

  7. TinyMCE 官方插件一览表(不完全)

    TinyMCE 官方插件一览表:advlist(Advanced List Plugin):项目编号.toolbar:bullist.autolink:自动加链接.lists:This list pl ...

  8. ABAP使用OLE2对象创建EXCEL文件

    厌倦了总是下载一模一样的EXCEL文档?没有颜色,边框,有效性验证.... 让我们看看怎样用OLE2对象来创造可爱的EXCEL工作表吧!(效果如下) 首先你需要知道微软EXCEL中的不同部分的名称,每 ...

  9. Android—实现自定义相机倒计时拍照

    这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: 两个TextView是用来显示提示信息和倒计时的 ...

  10. childViewController 小计

    设置childViewcontroller Unbalanced calls to begin/end appearance transitions for 以上报错 需要添加 transitionF ...