zoukankan      html  css  js  c++  java
  • HDU

    传送门


    【分析】

    等价于分析

    (quad ans)

    (displaystyle =sum_{i=1}^n oldsymbol mu^2(i)lfloorsqrt {nover i} floor)

    考虑莫比乌斯函数 (oldsymbol mu(n)) 不为 (0) 时的取值一定为 (pm 1)

    ((forall n o oldsymbol mu(n) eq 0) o oldsymbol mu^2(n)=1)

    而使得 (oldsymbol mu(n) eq 0) ,则 ( otexists p^2 o p^2mid n(pin Prime))


    考虑每个 (t=a^2cdot b) 的形式((a) 是极大的形式),则 (oldsymbol mu^2(b)=1)

    考虑将正整数集 (Z) ,按上述 (b) 进行归纳,会发现,对于 (forall nin Z) ,有且仅有一个 (b) 使得 (n) 被归纳进 (b) 所在的集合

    因此该归纳构成对正整数集 (Z) 的一个划分

    故对于 ([1,n]) 范围内每个 (b) ,设其所在集合为 (H_b) ,则 (|H_b|=lfloorsqrt {nover b} floor)

    存在 (1)(a(a=1)) 使得 (oldsymbol mu^2(a^2cdot b)=1)

    且存在 ((sqrt{nover b}-1))(a) 使得 (oldsymbol mu^2(a^2cdot b)=0)

    (H_b) 对求和式的贡献为 (displaystyle sum_{a^2cdot bleq n}oldsymbol mu^2(a^2cdot b)lfloorsqrt {nover a^2cdot b} floor=oldsymbol mu^2(b)lfloorsqrt{nover b} floor+0=lfloorsqrt {nover b} floor=|H_b|)

    故对于所有的 (H_b) 的贡献求和得到 (displaystyle ans=sum_{bleq n}|H_b|=n)


    故对于原题,直接得到答案为 (n^k)

    记得先取模再快速幂即可


    【代码】

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int P=1e9+7;
    inline ll fpow(ll a,ll x) { ll ans=1; for(a%=P;x;x>>=1,a=a*a%P) if(x&1) ans=ans*a%P; return ans; }
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0); cout.tie(0);
    	ll n,k;
    	for(int i=1;cin>>n>>k;++i)
    		cout<<"Case #"<<i<<": "<<fpow(n,k)<<"
    ";
    	cout.flush();
    	return 0;
    }
    
  • 相关阅读:
    CSDN工具-CSDN信息查看
    Plaintext Encryption
    摆脱任何工具-简单代码让文件夹加密
    pyquery解析库
    beautifulsoup解析库
    lxml beautiful pyquery三种解析库
    python的enumerate lambda isinstance filter函数
    python字符串的split replace strip
    整理github总结
    简单python爬虫实例
  • 原文地址:https://www.cnblogs.com/JustinRochester/p/14599384.html
Copyright © 2011-2022 走看看