题解【CJOJ1236】【复赛】指数序列求和
2024-09-26 18:21:15
Description
求1^b+2^b+…+a^b的和除以10000的余数。
Input
第一行包含一个正整数N,表示有N组测试数据
接下来N行每行包含两个正整数a和b
Output
共N行,每行一个对应的答案
Sample Input
1
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
#include <bits/stdc++.h> using namespace std; const int mod = ; inline int read()
{
int f=,x=;
char c=getchar(); while(c<'' || c>'')
{
if(c=='-')f=-;
c=getchar();
} while(c>='' && c<='')
{
x=x*+c-'';
c=getchar();
} return f*x;
} inline int Qpow(int a,int b)
{
int r=; while(b)
{
if(b&)
{
r=r*a%mod;
} a=a*a%mod; b=b>>;
} return r%mod;
} int t,a,b,ans,sum; int main()
{
t=read(); while(t--)
{
a=read(),b=read(); ans=,sum=a/mod; a=a%mod; for(register int i=; i<=mod; i++)
{
if(i<=a)
{
ans=(ans+(sum+)*Qpow(i,b))%mod;
}
else
{
ans=(ans+sum*Qpow(i,b))%mod;
}
} printf("%d\n",ans);
} return ;
}
最新文章
- RandHelper
- Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic
- Windows Server 2012 配置多用户远程桌面
- September 23rd 2016 Week 39th Friday
- Mybatis学习 —— 包括所有 mybatis官网
- Eclipse 安装Groovy插件
- 将Xml字符串转换成(DataTable || DataSet || XML)对象
- 传const引用代替传值
- Linux平台Makefile文件的编写基础篇(转)
- SWT中各种参数大全
- 数据结构--图 的JAVA实现(上)
- 页面嵌套iframe后,点击里面的链接,然后父窗口跳转(子窗口控制父窗口的链接跳转)
- JSP(4)—Cookie创建及简单案例(自动登录)
- 整合大量开源库项目(八)能够载入Gif动画的GifImageView
- I.MX6 Linux Qt 启动流程跟踪
- php 加载字体 并保存成图片
- 【转】【iOS开发】打开另一个APP(URL Scheme与openURL)
- Windows10 下 github ssh 访问出现 Permission denied(publickey)错误的解决方法
- 【Oracle 12c】最新CUUG OCP-071考试题库(53题)
- /boot/grub/grub.conf 内容诠释
热门文章
- Hadoop集群初步搭建:
- Java开学测试-学生成绩管理系统
- 安全 - CORS(脚本请求等)
- Wannafly Camp 2020 Day 3D 求和 - 莫比乌斯反演,整除分块,STL,杜教筛
- .netCore MVC View 如何不使用模板
- LVM实现将2块磁盘总空间“合二为一”并挂载到同一目录
- P3329 [ZJOI2011]最小割
- LED Holiday Light -holiday Light Inspection Implementation Recommendations
- [CQOI2012] 交换棋子 - 费用流
- [CF235A] LCM Challenge - 贪心