zoukankan      html  css  js  c++  java
  • Codeforces 915G Coprime Arrays 莫比乌斯反演 (看题解)

    Coprime Arrays

    啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊。

    #include<bits/stdc++.h>
    #define LL long long
    #define fi first
    #define se second
    #define mk make_pair
    #define PLL pair<LL, LL>
    #define PLI pair<LL, int>
    #define PII pair<int, int>
    #define SZ(x) ((int)x.size())
    #define ull unsigned long long
    
    using namespace std;
    
    const int N = 2e6 + 7;
    const int inf = 0x3f3f3f3f;
    const LL INF = 0x3f3f3f3f3f3f3f3f;
    const int mod = 1000000007;
    const double eps = 1e-6;
    const double PI = acos(-1);
    
    int n, k, miu[N], Pown[N], sum[N];
    
    int Power(int a, int b) {
        int ans = 1;
        while(b) {
            if(b & 1) ans = 1LL * ans * a % mod;
            a = 1LL * a * a % mod; b >>= 1;
        }
        return ans;
    }
    
    int main() {
        miu[1] = 1;
        for(int i = 1; i < N; i++)
            for(int j = i + i; j < N; j += i)
                miu[j] -= miu[i];
        scanf("%d%d", &n, &k);
        for(int i = 1; i <= k; i++) Pown[i] = Power(i, n);
        int ans = 0, tmp = 0;
        for(int i = 1; i <= k; i++) {
            for(int j = i; j <= k; j += i) {
                sum[j] = ((sum[j] + 1LL * miu[i] * (Pown[j / i] - Pown[j / i - 1])) % mod + mod) % mod;
            }
            tmp = (tmp + sum[i]) % mod;
            ans = (ans + (tmp ^ i)) % mod;
        }
        printf("%d
    ", ans);
        return 0;
    }
    
    /*
    */
  • 相关阅读:
    手机抓包
    基础数据-wiki
    Laravel异常日志
    用户设备、UA检测 相关
    yum安装的nginx新增模块http_image_filter_module笔记
    nginx 配置图片自动裁剪
    PHP中使用ffmpeg截取视频图片笔记
    采集乱七八糟记录下
    Laravel学习笔记之session使用
    html5 新增表单类型
  • 原文地址:https://www.cnblogs.com/CJLHY/p/10570014.html
Copyright © 2011-2022 走看看