Description

求1^b+2^b+…+a^b的和除以10000的余数。

Input

第一行包含一个正整数N,表示有N组测试数据
接下来N行每行包含两个正整数a和b

Output

共N行,每行一个对应的答案

Sample Input


2 3

Sample Output

9

Hint

数据范围:

对于30%数据n≤10,a,b≤1000

对于100%数据n≤100,a,b≤1000000000

Source

位运算,二分,快速幂

Solution

由标签和数据范围可知,这题是个枚举模数的题。(有二分吗)

我们分析之后就会发现a^b和(a+mod)^b对答案的影响是一样的,证明是显然的。

所以说我们对于任意i^b都可以写成(i%mod)^b,那么只需要把mod打表打下来就可以一次计算完了,打表的时候用倍增快速幂即可。

——摘自这里

知道这个后,这就是一个快速幂取模的水题啦!

Code

  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int mod = ;
  6.  
  7. inline int read()
  8. {
  9. int f=,x=;
  10. char c=getchar();
  11.  
  12. while(c<'' || c>'')
  13. {
  14. if(c=='-')f=-;
  15. c=getchar();
  16. }
  17.  
  18. while(c>='' && c<='')
  19. {
  20. x=x*+c-'';
  21. c=getchar();
  22. }
  23.  
  24. return f*x;
  25. }
  26.  
  27. inline int Qpow(int a,int b)
  28. {
  29. int r=;
  30.  
  31. while(b)
  32. {
  33. if(b&)
  34. {
  35. r=r*a%mod;
  36. }
  37.  
  38. a=a*a%mod;
  39.  
  40. b=b>>;
  41. }
  42.  
  43. return r%mod;
  44. }
  45.  
  46. int t,a,b,ans,sum;
  47.  
  48. int main()
  49. {
  50. t=read();
  51.  
  52. while(t--)
  53. {
  54. a=read(),b=read();
  55.  
  56. ans=,sum=a/mod;
  57.  
  58. a=a%mod;
  59.  
  60. for(register int i=; i<=mod; i++)
  61. {
  62. if(i<=a)
  63. {
  64. ans=(ans+(sum+)*Qpow(i,b))%mod;
  65. }
  66. else
  67. {
  68. ans=(ans+sum*Qpow(i,b))%mod;
  69. }
  70. }
  71.  
  72. printf("%d\n",ans);
  73. }
  74.  
  75. return ;
  76. }

题解【CJOJ1236】【复赛】指数序列求和的更多相关文章

  1. 【51Nod1258】序列求和V4(FFT)

    [51Nod1258]序列求和V4(FFT) 题面 51Nod 多组数据,求: \[Ans=\sum_{i=1}^ni^k,n\le 10^{18},k\le50000\] 题解 预处理伯努利数,时间 ...

  2. HDU 5358 First One 求和(序列求和,优化)

    题意:给定一个含n个元素的序列,求下式子的结果.S(i,j)表示为seq[i...j]之和.注:对于log20可视为1.数据量n<=105. 思路:即使能够在O(1)的时间内求得任意S,也是需要 ...

  3. 51NOD 1258 序列求和 V4 [任意模数fft 多项式求逆元 伯努利数]

    1258 序列求和 V4 题意:求\(S_m(n) = \sum_{i=1}^n i^m \mod 10^9+7\),多组数据,\(T \le 500, n \le 10^{18}, k \le 50 ...

  4. 51nod 1258 序列求和 V4

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1258 1258 序列求和 V4  基准时间限制:8 秒 空间限制:131 ...

  5. HDU 2254 奥运(矩阵高速幂+二分等比序列求和)

    HDU 2254 奥运(矩阵高速幂+二分等比序列求和) ACM 题目地址:HDU 2254 奥运 题意:  中问题不解释. 分析:  依据floyd的算法,矩阵的k次方表示这个矩阵走了k步.  所以k ...

  6. 51nod_1236_序列求和 V3 _组合数学

    51nod_1236_序列求和 V3 _组合数学 Fib(n)表示斐波那契数列的第n项,Fib(n) = Fib(n-1) + Fib(n-2).Fib(0) = 0, Fib(1) = 1. (1, ...

  7. HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和)

    HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和) ACM 题目地址:HDU 1588 Gauss Fibonacci 题意:  g(i)=k*i+b;i为变量.  给出 ...

  8. lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)

    入门训练 序列求和 时间限制:1.0s   内存限制:256.0MB     问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...

  9. 51nod 1228 序列求和(伯努利数)

    1228 序列求和  题目来源: HackerRank 基准时间限制:3 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  关注 T(n) = n^k,S(n) = T(1 ...

随机推荐

  1. [HNOI2015]接水果[整体二分]

    [HNOI2015]接水果 给出一个树上路径集合\(S\) 多次询问\(x,y\)中的\(k\)小值 如果你问我数列上那么我会 树上的话 树上差分了吧直接?- 令 \(st_x<st_y\) 1 ...

  2. C#为配置文件加密的实现方法

    利用ASP.NET注册工具ASPnet_regiis.exe注册IIS,该工具的名称为aspnet_regiis.exe,在32位机上,该工具存在于C:\WINDOWS\Microsoft.NET\F ...

  3. 小白月赛22 F: 累乘数字

    F:累乘数字 考察点: 思维,高精度 坑点 : 模拟就 OK 析题得侃: 如果你思维比较灵敏:直接输出这个数+ d 个 "00"就行了 当然,我还没有那么灵敏,只能用大数来搞了 关 ...

  4. php 文件追加写入

    //追加写入 file_put_contents('xml.text',json_encode($postObj,JSON_FORCE_OBJECT).PHP_EOL,FILE_APPEND);

  5. 疫情下的传统商企自救|4个Tips搭建销量过亿直播间

    新冠肺炎爆发以来,线下商企遭受巨大冲击.出于疫情防控需要,不少门店选择暂时停业:而消费者们更是响应号召.足不出户.这场疫情促使消费者的消费习惯和方式进一步转向线上订购转变,直播.短视频等领域逆势而起, ...

  6. ubuntu set up 2 - 双系统时间问题

    http://ubuntuhandbook.org/index.php/2016/05/time-differences-ubuntu-1604-windows-10/ For users who d ...

  7. 全网最详细——Testlink在windows环境下搭建;提供环境下载

    参考这篇文章,写的真不错https://www.jianshu.com/p/6c4321de26ea 工具下载 链接:https://pan.baidu.com/s/1_yzCIvsExbfzcRdl ...

  8. S3C2440的时钟原理

    Crystal 无源晶体Oscillator 有源晶体(里面有有源器件) 无源晶振内只有一片按一定轴向切割的石英晶体薄片,供接入运放(或微处理器的XTAL端) 以形成振荡.有源晶振内带运放,工作在最佳 ...

  9. update(十)

    Vue 的 _update 是实例的一个私有方法,它被调用的时机有 2 个,一个是首次渲染,一个是数据更新的时候:由于我们这一章节只分析首次渲染部分,数据更新部分会在之后分析响应式原理的时候涉及._u ...

  10. JDBC用户访问被拒绝

    线程“主”java中的异常.于sq1.sQLException:用户“root”@“localhost”被拒绝访问(使用密码:YES)root密码错误