zoukankan      html  css  js  c++  java
  • RXD and math

    RXD and math

    题目链接

    思路

    (u)函数是莫比乌斯函数,这个不影响做题,这个式子算的是([1,n^k])中能够写成(a*b^2)的数的个数,(u(a)!=0).然后我们可以证明任何数都可以唯一写成(a*b^2)的形式,因为(b = p1*p2*..pn),假设(a)中没有(b)中的因子,那么肯定是唯一表示的,如果含有(b)中的因子如果表示的形式要变,那么肯定要将(b)改变,那么如果(b)改变的话假设将任意一个(p)(a)中的某个不在(b)中的质因子互换时,由于(p)无论在(a)中本来有或没都无法构成平方。快速幂来下就可以了,就是求(n^k)复杂度(O(logn))

    代码

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const LL mod = 1e9+7;
    LL quick(LL n,LL m);
    int main(void)
    {
        LL n,k;
        int __cn = 0;
        while(scanf("%lld %lld",&n,&k)!=EOF)
        {
            printf("Case #%d: %lld
    ",++__cn,quick(n,k));
        }
        return 0;
    }
    LL quick(LL n,LL m)
    {
        LL ask = 1;
        n%=mod;
        while(m)
        {
            if(m&1)
            ask = ask * n%mod;
            n = n*n%mod;
            m>>=1;
        }
        return ask;
    }
    
    
  • 相关阅读:
    web端
    vue 键盘事件keyup/keydoen
    APiCloud
    APiCloud
    对于HTML和XML的理解
    JS 的三种定义变量 var let const
    jQuery
    NodeJS 阻塞/非阻塞
    NodeJs REPL交互式解析器常用命令
    用NodeJS创建一个聊天服务器
  • 原文地址:https://www.cnblogs.com/zzuli2sjy/p/7271543.html
Copyright © 2011-2022 走看看