zoukankan      html  css  js  c++  java
  • 莫比乌斯反演

    莫比乌斯函数

     求单个莫比乌斯函数   O(sqrt(n))

    ll getu(ll x) {
        ll v = 1;
        for (int i = 2; i * i <= x; i++) {
            if (x % i == 0) {
                v = -v, x /= i;
                if (x % i == 0) return 0;
            }
        }
        if (x != 1) v = -v;
        return v;
    }
    View Code

     线性筛莫比乌斯函数 O(n)

    // 莫比乌斯函数线性筛
    // 同时求出素数表
    int prime[maxn], prime_tot;
    int    is_prime[maxn];
    int mu[maxn];
    
    void pre_calc(int lim) {
        mu[1] = 1;
        for (int i = 2; i <= lim; i++) {
            if (!is_prime[i]) {
                prime[++prime_tot] = i;
                mu[i] = -1;
            }
            for (int j = 1; j <= prime_tot; j++) {
                if (i * prime[j] > lim) break;
                is_prime[i * prime[j]] = 1;
                if (i % prime[j] == 0) {
                    mu[i * prime[j]] = 0;
                    break;
                }
                else mu[i * prime[j]] = -mu[i];
            }
        }
    }
    View Code

  • 相关阅读:
    解析XML
    事务
    js小工具
    plsql用过的流程语句
    查询语句
    存储过程
    用过的CRT命令
    mysql常用命令
    Spirng MVC demo 完整示例01 环境搭建
    jmeter多个http请求串联
  • 原文地址:https://www.cnblogs.com/hznumqf/p/12444686.html
Copyright © 2011-2022 走看看