题意:略。

思路:问题转化为1到N,他们的满足mu[d]!=0的因子d个数。  即1到N的因子的莫比乌斯系数平方和。

(经验:累加符号是累加的个数,我们把常数提到前面,然后用杜教筛累加个数即可。

https://www.cnblogs.com/clrs97/p/6012285.html

关键部分,perfectxx都给了注释的(感谢)

http://www.perfectxxlowiq.com/2018/03/22/hdu5942-%E6%95%B0%E8%AE%BA/

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=;
const int Mod=1e9+;
int mu[maxn],p[maxn],vis[maxn],cnt,f[maxn];
void pre()
{
mu[]=;
for(int i=;i<maxn;i++){
if(!vis[i]) p[++cnt]=i,mu[i]=-;
for(int j=;j<=cnt&&i*p[j]<maxn;j++){
vis[i*p[j]]=;
if(i%p[j]) mu[i*p[j]]=-mu[i];
else break;
}
}
}
int F(ll x)
{
if(x<maxn&&f[x]) return f[x];
ll res=;
for(ll i=,j;i<=x;i=j+){
j=x/(x/i); res+=(j-i+)*(x/i);
}
res%=Mod; if(x<maxn) f[x]=res;
return res;
}
int main()
{
pre();
int T,C=; ll N; int ans;
scanf("%d",&T);
while(T--){
scanf("%lld",&N); ans=;
for(int i=;i<=N/i;i++){
if(mu[i]) ans=(ans+F(N/i/i)*mu[i])%Mod;
}
printf("Case #%d: %d\n",++C,(ans+Mod)%Mod);
}
return ;
}

HDU - 5942 :Just a Math Problem (莫比乌斯)的更多相关文章

  1. HDU 5942 Just a Math Problem 容斥 莫比乌斯反演

    题意:\( g(k) = 2^{f(k)} \) ,求\( \sum_{i = 1}^{n} g(i) \),其中\( f(k)\)代表k的素因子个数. 思路:题目意思很简单,但是着重于推导和简化,这 ...

  2. HDU 5055 Bob and math problem(结构体)

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5055 Problem Description Recently, Bob has been think ...

  3. HDU 1757 A Simple Math Problem 【矩阵经典7 构造矩阵递推式】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1757 A Simple Math Problem Time Limit: 3000/1000 MS (J ...

  4. hdu 1757 A Simple Math Problem (乘法矩阵)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. HDU 5615 Jam's math problem

    Jam's math problem Problem Description Jam has a math problem. He just learned factorization.He is t ...

  6. HDU 1757 A Simple Math Problem (矩阵快速幂)

    题目 A Simple Math Problem 解析 矩阵快速幂模板题 构造矩阵 \[\begin{bmatrix}a_0&a_1&a_2&a_3&a_4&a ...

  7. HDU 1757 A Simple Math Problem(矩阵)

    A Simple Math Problem [题目链接]A Simple Math Problem [题目类型]矩阵快速幂 &题解: 这是一个模板题,也算是入门了吧. 推荐一个博客:点这里 跟 ...

  8. HDU 1757 A Simple Math Problem (矩阵乘法)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  9. hdu 5974 A Simple Math Problem

    A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

随机推荐

  1. sleep(),wait(),yield()和join()方法的区别

    sleep() sleep()方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级 的线程得到执行的机会,也可以让低优先级的线 ...

  2. Build hadoop 2.5.2 with Java8

    mvn clean package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true

  3. 在lnmp下开启fileinfo扩展 Ubuntu系统

    在lnmp下开启fileinfo扩展 Ubuntu系统 1.进入目录下 cd /usr/local/lnmp1.4-full/src/php-5.6.31/ext/fileinfo 2.phpize处 ...

  4. 使用Python操作memcache

    Python连接memcached的库有很多,处于简单以及高效的原则,最终选择了pymemcache, 优点 完全实现了memcached text协议 对于send/recv操作可以配置timeou ...

  5. vue削笔机

    // 1.vue 是异步更新dom // 2.vue修改多次状态,vue 只会渲染一次 // 3.vue变化侦查机制,每次状态的变化都会发出一个渲染信号. // 检查队列中是否存在,不存在将渲染操作添 ...

  6. [Vue]组件——使用.native和$listeners将控件的原生事件绑定到组件

    1.方法1:.native修饰符 1.1.native修饰符:将原生事件绑定到组件的根元素上 <base-input v-on:focus.native="onFocus"& ...

  7. go-statsd项目

    linux命令: 进程:top 收包丢包:netstat -su[c持续输出] go tool pprof: 我们可以使用go tool pprof命令来交互式的访问概要文件的内容.命令将会分析指定的 ...

  8. ctci1.4

    ;     ;     ; i < len ; i++)         ;      +];     ; i < len; i++){         ';         }      ...

  9. ctci1.3

    ; i < len; i++){         if(str0[i] != str1[i])             return false;     }          return t ...

  10. 14.并发容器之ConcurrentHashMap(JDK 1.8版本)

    1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况,因为hashmap并不是线程安全的,通常我们可以使用在java体系中古老的hasht ...