HDU - 5942 :Just a Math Problem (莫比乌斯)

题意:略。
思路:问题转化为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 (莫比乌斯)的更多相关文章
- HDU 5942 Just a Math Problem 容斥 莫比乌斯反演
题意:\( g(k) = 2^{f(k)} \) ,求\( \sum_{i = 1}^{n} g(i) \),其中\( f(k)\)代表k的素因子个数. 思路:题目意思很简单,但是着重于推导和简化,这 ...
- HDU 5055 Bob and math problem(结构体)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5055 Problem Description Recently, Bob has been think ...
- 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 ...
- hdu 1757 A Simple Math Problem (乘法矩阵)
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU 5615 Jam's math problem
Jam's math problem Problem Description Jam has a math problem. He just learned factorization.He is t ...
- HDU 1757 A Simple Math Problem (矩阵快速幂)
题目 A Simple Math Problem 解析 矩阵快速幂模板题 构造矩阵 \[\begin{bmatrix}a_0&a_1&a_2&a_3&a_4&a ...
- HDU 1757 A Simple Math Problem(矩阵)
A Simple Math Problem [题目链接]A Simple Math Problem [题目类型]矩阵快速幂 &题解: 这是一个模板题,也算是入门了吧. 推荐一个博客:点这里 跟 ...
- HDU 1757 A Simple Math Problem (矩阵乘法)
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdu 5974 A Simple Math Problem
A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
随机推荐
- codeforces Round#429 (Div2)
2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...
- [笔记整理]SQL Server 索引碎片 和 重建索引
铺垫知识点: 数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘.既键值的逻辑顺序决定了表中相应行的物理顺序 多数情况下,数据库读取频率远高于写入频率,索引的存在 为了读取速度牺牲 ...
- url拼接
在做网页抓取的时候经常会遇到一个问题就是页面中的链接是相对链接,这个时候就需要对链接进行url拼接,才能得到绝对链接. url严格按照一定的格式构成,一般为如下5个字段: 详细可参考RFC:http: ...
- 使用Python操作memcache
Python连接memcached的库有很多,处于简单以及高效的原则,最终选择了pymemcache, 优点 完全实现了memcached text协议 对于send/recv操作可以配置timeou ...
- JavaScript权威指南--表达式与运算符
本章要点 表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果. 程序中的常量.变量名就是一种简单的表达式.复杂的表达式是由简单的表达式组成的,比如数组访问表达式. ...
- 对reducers 理解
var reducers = { totalInEuros : function(state, item) { return state.euros += item.price * 0.8974243 ...
- Unity 和 3DMAx
3DMax转换成DAE模式才会有纹理信息.
- mbstring.so下载安装
linux下安装: $:cd /php7.0/ext/mbstring 切换到源码包目录下 $:/usr/local/php/bin/phpize 执行这句 $:./configure –with-p ...
- LeetCode之Regular Expression Matching
[题目描述] Implement regular expression matching with support for '.' and '*'. '.' Matches any single ch ...
- C# POST请求 json格式
/* * url:POST请求地址,例如:url = "http://localhost:35229/ddn/GetPostData"; * postData:json格式的请求报 ...