Hdu 6063 - RXD and math(思维)
2017-08-02 23:45
351 查看
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=6063
题目大意:
求式子∑nki=1μ2(i)×⌊nki−−√⌋的值
分析:
根据多校第三场的1008题解,任意一个数x,可以被唯一的表示成a2×b的形式,其中μ2(b)=1,对于小于nk的每一个μ2(i)=1的i来说,⌊xi−−√⌋表示a2×i≤x的所有a的个数,由于对于每个i,能表示出的数均不同,所以小于nk的所有的i恰好能表示出nk内的所有数,所以答案就是nk,快速幂即可
注意:由于n,k均为1018级别,所以如果快速幂前不对n取模,过程中会爆long long
代码:
http://acm.hdu.edu.cn/showproblem.php?pid=6063
题目大意:
求式子∑nki=1μ2(i)×⌊nki−−√⌋的值
分析:
根据多校第三场的1008题解,任意一个数x,可以被唯一的表示成a2×b的形式,其中μ2(b)=1,对于小于nk的每一个μ2(i)=1的i来说,⌊xi−−√⌋表示a2×i≤x的所有a的个数,由于对于每个i,能表示出的数均不同,所以小于nk的所有的i恰好能表示出nk内的所有数,所以答案就是nk,快速幂即可
注意:由于n,k均为1018级别,所以如果快速幂前不对n取模,过程中会爆long long
代码:
#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> using namespace std; typedef long long ll; const int mod = 1e9+7; ll quickpow(ll a,ll n) { ll res= 1; while (n) { if (n&1) res = res*a%mod; a = a*a%mod; n >>= 1; } return res; } int main() { ll n,k; int t = 1; while (~scanf("%lld%lld",&n,&k)) { ll ans =quickpow(n%mod,k); printf("Case #%d: %lld\n",t++,ans%mod); } return 0; }
相关文章推荐
- HDU-6063-RXD and math-
- RXD and math HDU - 6063
- HDU 6063 RXD and math(数论)
- HDU--6063--RXD and math
- hdu 6063 RXD and math(快速幂)
- (2017多校训练第三场)HDU - 6063 RXD and math 找规律 + 快速幂
- hdu-6063-RXD and math
- hdu 6063 RXD and math (规律题)
- 2017 多校训练第三场 HDU 6063 RXD and math
- HDU 6063 RXD and math 打表找规律 快速幂
- HDU 6063 RXD and math【快速幂】【打表找规律】
- 多校3 HDU - 6063 RXD and math 数学
- HDU 6063 RXD and math
- 17暑假多校联赛3.8 HDU 6063 RXD and math
- HDU 6063 RXD and math【数学】
- HDU 6063 RXD and math(快速幂)
- HDU 6063 17多校3 RXD and math(暴力打表题)
- 17 多校 3 - 1008 - RXD and math(HDU 6063)
- hdu--6063 RXD and math
- RXD and math(HDU 6063 快速幂)