多校3 HDU
来源:互联网 发布:淘宝网店代理货源网 编辑:程序博客网 时间:2024/05/16 13:43
原题链接:
HDU-6063
RXD and math
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)
Total Submission(s): 672 Accepted Submission(s): 385
Problem Description
RXD is a good mathematician.
One day he wants to calculate:
output the answer module 109+7.
1≤n,k≤1e18
p1,p2,p3…pk are different prime numbers
Input
There are several test cases, please keep reading until EOF.
There are exact 10000 cases.
For each test case, there are 2 numbers n,k.
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
大意:
给公式求值。
思路:
比赛的时候想着套莫比乌斯函数,同时也发现
然后队长说发现 n^k 直接取模试试看就过了。
赛后题解:
现在从答案来反向理解一下= =
题解不是很明白。如果只是从原式去推的话,就很难得出 n^k 这种简洁的结论。
每个数字 x 都能唯一表示
对于
归纳起来
每一个 i , 式子 * 对应的是 i的倍数 在 n^k 内的数量
而 i 取 1~n^k 的范围时,i 和其倍数把所有 1~n^k 都表示了。
所以答案就是个数 即 n^k
代码实现:
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f//#define LOCALconst int mod = 1e9+7;ll quick_mod(ll a,ll b){ a%=mod; ll ret=1; while(b){ if(b&1) ret=(ret*a)%mod; a=(a*a)%mod; b>>=1; } return ret%mod;}int main() { ll a,b,kase=0; while(scanf("%lld%lld",&a,&b)!=EOF){ printf("Case #%lld: %lld\n",++kase,quick_mod(a,b)); } return 0;}
- 多校3 HDU
- 多校3-1002 HDU 5317
- hdu 5316 多校(3)
- hdu 多校
- hdu 多校
- 多校 hdu
- 多校 hdu
- 多校 hdu
- HDU 多校
- hdu 3
- BestCoder #3 (HDU 4907 HDU 4908 HDU 4909 HDU 4910)
- hdu 4322 Candy 【多校3】【费用流】
- HDU 5317(2015多校3)-RGCDQ(数论)
- HDU 5319(2015多校3)-Painter(dfs)
- HDU 5326(2015多校3)-Work(dfs)
- HDU 5752 Sqrt Bo(多校3--1001)
- HDU 5761 Rower Bo(多校3)
- HDU 6058 Kanade's sum(多校3)
- swift as as?as!的用法
- CSS 选择器
- 串行通信总述
- java基础知识
- 如何计算视频和音频的时间戳间隔时间
- 多校3 HDU
- hdu6060斯坦纳树
- Java NIO之EPollSelectorImpl详解
- 史上最快版本-文件审查控件Workshare V9.5 发布
- Java多线程概览
- vue.js开发环境搭建
- Zocodc/Zillow/Qualtrics面试题
- Java进程CPU使用率高排查
- block写法