1234:2011

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 7002     通过数: 2979

【题目描述】

已知长度最大为200位的正整数n,请求出2011^n的后四位。

【输入】

第一行为一个正整数k,代表有k组数据(k≤200),接下来的k行,每行都有一个正整数n,n的位数≤200。

【输出】

每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0。

【输入样例】

3
5
28
792

【输出样例】

1051
81
5521

【分析】

依题意,求2011^n的后四位。后四位显然是模10000。2011^n%10000,可以直接套用蒙哥马利幂取模模板。

模板1:蒙哥马利幂取模(非递归)

幂取模    a^b mod n     非递归
long long mod_exp(long long a,long long b,long long n)
{long long res=1;while(b){if(b&1)res=res*a%n;a=a*a%n;                 // 反复平方b>>=1;                   // 2分求幂}return res;
}

模板很好理解,用到的就是反复平方法和二分求幂法,例如:求(2^100)%10的最后一位是多少?

(2^100)%10 = (4^50)%10 = (16^25)%10 = (16%10)^25%10 = (6^25)%10 = (6*6^24)%10 = (6*36^12)%10 = ... = 6。

模板2:蒙哥马利幂取模(递归1)

幂取模    m^n mod p     递归1
long long mod_exp(long long m,long long n,long long p)
{long long t;if(n==1)return m%p;t=mod_exp(m,n/2,p)%p;t=t*t%p;if(!(n&1))        // 等价 if(n%2==0)return t;elsereturn m*t%p;
}

模板3:蒙哥马利幂取模(递归2)

幂取模    m^n mod p     递归2
long long mod_exp(long long m,long long n,long long p)
{long long t;if(n==1)return m%p;if(n%2==0)return mod_exp( (m*m)%p , n/2 , p);elsereturn m*mod_exp(m%p, n-1, p)%p;
}

【参考代码】

#include<stdio.h>
#include<string.h>
#define MAXN 210char s[MAXN];//蒙哥马利幂取模非递归模板
long long quickpow(long long a,long long b,long long n)  // a^b mod n
{long long res=1;while(b)                 //2分求幂法 {if(b & 1)res=res*a%n;a=(a*a)%n;           //反复平方法 b>>=1;}return res;
}
int main()
{int i,k,len,n;scanf("%d",&k);getchar();while(k--){gets(s);n=0;len=strlen(s);n=s[len-1]-'0';if(len>=2)n+=(s[len-2]-'0')*10;if(len>=3)n+=(s[len-3]-'0')*100;if(len>=4)n+=(s[len-4]-'0')*1000;n%=500;printf("%lld\n",quickpow(2011,n,10000));}return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1234

信息学奥赛一本通(1234:2011)相关推荐

  1. 信息学奥赛一本通 1234:2011(evd)

    [题目描述] 已知长度最大为200位的正整数n,请求出2011n的后四位. [输入] 第一行为一个正整数k,代表有k组数据(k≤200),接下来的k行,每行都有一个正整数n,n的位数≤200. [输出 ...

  2. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  3. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  4. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  5. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  6. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  7. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  8. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  9. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  10. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

最新文章

  1. Love = Accounting
  2. linux 再多的running也挡不住锁
  3. 技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制
  4. NYOJ 6 喷水装置(一)
  5. WindowProc和DefWindowProc的区别
  6. [剑指offer][JAVA]面试题第[22]题[j剑指offer][双指针][快慢指针]
  7. java中的udp丢包_UDP丢包问题
  8. 能用机器完成的,千万别堆工作量|持续集成中的性能自动化测试
  9. The .NET Core runtime can be found at:(Windows)
  10. 笔记《鸟哥的Linux私房菜》6 Linux的档案权限与目录配置
  11. C语言:32个关键字
  12. shell 小米system锁adb_小米/红米系列手机解system分区锁方法详解
  13. 如何获取淘宝APP原数据现场教学
  14. const注意点(对象赋值)
  15. python自然语言处理 分词_Python 自然语言处理(基于jieba分词和NLTK)
  16. TCP BBR的startup bbr_high_gain为什么是2/ln2?
  17. vue——echarts更换主题
  18. Unity3d 技巧(1)-摄像机层级设置
  19. 【Vue.js】Vue.js组件库Element中的图片、回到顶部、无限滚动和抽屉
  20. redhat linux 6.4,redhat linux 6.4 运行 runcluvfy 错误一例

热门文章

  1. LwIP移植到FreeRTOS(STM32F107+DP83848)
  2. 电信业务分类目录_第五大运营商!中信网络获基础电信业务牌照
  3. IDEA 2021.3 重磅发布!远程开发 (Beta) 、机器学习、故障自检、体验优化......
  4. 推荐两款工具给爱做实验的人
  5. Java 数组转 List 的三种方式及对比
  6. 复刻了一个史上最强 Redis 6.0 版本
  7. NullPointerException的处理新方式,Java14真的太香了
  8. 为什么我墙裂建议大家使用枚举来实现单例。
  9. 资深架构专家讲解微服务治理的架构演进
  10. 【C#学习笔记】函数调用