2017多校联合三/hdu6063 ( RXD and math )快速幂+思维
来源:互联网 发布:省市区json数据 编辑:程序博客网 时间:2024/06/04 20:08
RXD and math
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 310 Accepted Submission(s): 160
Problem Description
RXD is a good mathematician.
One day he wants to calculate:
∑i=1nkμ2(i)×⌊nki‾‾‾√⌋
output the answer module109+7 .
1≤n,k≤1018
μ(n)=1(n=1)
μ(n)=(−1)k(n=p1p2…pk)
μ(n)=0(otherwise)
p1,p2,p3…pk are different prime numbers
One day he wants to calculate:
output the answer module
Input
There are several test cases, please keep reading until EOF.
There are exact 10000 cases.
For each test case, there are 2 numbersn,k .
There are exact 10000 cases.
For each test case, there are 2 numbers
Output
For each test case, output "Case #x: y", which means the test case number and the answer.
Sample Input
10 10
Sample Output
Case #1: 999999937
Source
2017 Multi-University Training Contest - Team 3
注意到一个数字x必然会被唯一表示成a2×b的形式.其中∣μ(b)∣=1。 所以这个式子会把[1,nk]的每个整数恰好算一次. 所以答案就是nk,快速幂即可. 时间复杂度O(logk).
#include <iostream>#include <algorithm>#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <string.h>#include <map>#include <set>#include <queue>#include <deque>#include <list>#include <bitset>#include <stack>#include <stdlib.h>#define lowbit(x) (x&-x)#define e exp(1.0)//ios::sync_with_stdio(false);// auto start = clock();// cout << (clock() - start) / (double)CLOCKS_PER_SEC;typedef long long ll;typedef long long LL;const int mod=1e9+7;using namespace std;ll qmod(ll n,ll k){ ll ans=1; n=n%mod; while(k) { if(k%2==0) { n=n*n%mod; k/=2; } else { ans=ans*n%mod; k--; } } return ans;}int main(){ ll n,k; int cas=1; while(cin>>n>>k) { cout<<"Case #"<<cas++<<": "<<qmod(n,k)<<endl; } return 0;}
阅读全文
1 1
- 2017多校联合三/hdu6063 ( RXD and math )快速幂+思维
- HDU6063 [2017多校联合3] RXD and math 打表 快速幂
- HDU6063 RXD and math 快速幂
- HDU6063---RXD and math(2017多校联赛题目(???))
- HDU6063-RXD and math
- hdu6063-RXD and math
- HDU6063-RXD and math
- [hdu6063]RXD and math
- hdu6063 RXD and math
- 2017杭电多校联赛第三场-RXD and math (hdu6063) 找规律快速幂
- 2017多校训练Contest3: 1008 RXD and math hdu6063
- Hdu6063 RXD and math(2017多校第3场)
- HDU6063 2017杭电多校联赛第三场-RXD and math
- hdu6063 RXD and math(数学/打表)
- HDU 6063 RXD and math(快速幂)
- HDU 6063 RXD and math+(快速幂)+多校联赛第三场
- HDU 2017 多校联赛3 1008 RXD and math
- hdu 多校联赛 RXD and math
- 如何下载网页上不能下载的视频
- POJ 3984迷宫问题 (BFS做法)
- 使用浏览器端口打开HTML
- Variable 变量
- C++之条件语句,switch语句
- 2017多校联合三/hdu6063 ( RXD and math )快速幂+思维
- LoadRunner脚本中的协议选择
- 数据库分库分表(一)常见分布式主键ID生成策略
- 找零钱 xynuoj 酒馆浪人的博客
- 8.1
- hihocoder1184(边的双联通分量)
- Spinner替代方案
- LoadRunner进行性能测试大致流程
- 自定义组件开发