bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)
题目大意:
读入n。
第一行输出“1”(不带引号)。
第二行输出$\sum_{i=1}^n i\phi(i)$。
题解:
所以说那个$\sum\mu$是在开玩笑么=。=
设$f(n)=n\phi(n),F(n)=\sum_{i=1}^{n}f(i)$。
设$g=(f*id)$,则$g(n)=\sum_{d|n}id(\frac{n}{d})f(d)=n^2$。
设$G(n)=\sum_{i=1}^n g(i)=\frac{n(n+1)(2n+1)}{6}$。
同时将$G$完全展开我们得到:
$G(n)=\sum_{i=1}^{n}\sum_{d|i}d*f(\frac{i}{d})$
$=\sum_{d=1}^{n}d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}f(i)$
$=\sum_{d=1}^{n}dF(\lfloor \frac{n}{d} \rfloor)$
由此可得:$$F(n)=\frac{n(n+1)(2n+1)}{6}-\sum_{i=2}^{n}F(\lfloor \frac{n}{i} \rfloor)i$$
代码:
#define Troy #include <bits/stdc++.h> using namespace std; inline int read(){
int s=,k=;char ch=getchar();
while(ch<''|ch>'') ch=='-'?k=-:,ch=getchar();
while(ch>&ch<='') s=s*+(ch^),ch=getchar();
return s*k;
} const int N=1e6+,mod=1e9+; int phi[N],prim[N],num,vis[N],F[N],f[N],n,re6=,re2=;
map<int,int> mp; inline int calc(int x){
if(x<N) return F[x];
else if(mp.count(x)) return mp[x];
int ret=x*1ll*(x+)%mod*(2ll*x+)%mod*re6%mod;
for(register int i=,j;i<=x;i=j+){
j=x/(x/i);
ret=(ret-(j-i+1ll)*(i+j)/%mod*calc(x/i)%mod)%mod;
if(ret<) ret+=mod;
}
return mp[x]=ret;
} int main(){
n=read();puts("");
register int i,j,k;
phi[]=;
for(i=;i<N;++i){
if(!vis[i]) prim[++num]=i,phi[i]=i-;
for(j=;(k=prim[j]*i)<N;++j){
vis[k]=true;
if(i%prim[j]){
phi[k]=phi[i]*1ll*(prim[j]-)%mod;
continue;
}
phi[k]=phi[i]*1ll*prim[j]%mod;break;
}
}
for(i=;i<N;++i) f[i]=1ll*phi[i]*i%mod,F[i]=(F[i-]*1ll+f[i])%mod;
printf("%d\n",(calc(n)+mod)%mod);
}
bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)的更多相关文章
- 【BZOJ4916】神犇和蒟蒻 杜教筛
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4916 第一个询问即求出$\sum_{i=1}^{n} { \mu (i^2)} $,考虑 ...
- BZOJ4916: 神犇和蒟蒻(杜教筛)
题意 求 $$\sum_{i = 1}^n \mu(i^2)$$ $$\sum_{i = 1}^n \phi(i^2)$$ $n \leqslant 10^9$ Sol zz的我看第一问看了10min ...
- [BZOJ4916]神犇和蒟蒻 杜教筛/Min_25筛
题目大意: 给定\(n\le 10^9\),求: 1.\(\sum_{i=1}^n\mu(i^2)\) 2.\(\sum_{i=1}^n\varphi(i^2)\) 解释 1.\(\sum_{i=1} ...
- bzoj 4916: 神犇和蒟蒻【欧拉函数+莫比乌斯函数+杜教筛】
居然扒到了学长出的题 和3944差不多(?),虽然一眼看上去很可怕但是仔细观察发现,对于mu来讲,答案永远是1(对于带平方的,mu值为0,1除外),然后根据欧拉筛的原理,\( \sum_{i=1}^{ ...
- [BZOJ 4916]神犇和蒟蒻
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- 【刷题】BZOJ 4916 神犇和蒟蒻
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演
BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演 Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求 ...
- [bzoj 4176] Lucas的数论 (杜教筛 + 莫比乌斯反演)
题面 设d(x)d(x)d(x)为xxx的约数个数,给定NNN,求 ∑i=1N∑j=1Nd(ij)\sum^{N}_{i=1}\sum^{N}_{j=1} d(ij)i=1∑Nj=1∑Nd(ij) ...
- 【XSY2731】Div 数论 杜教筛 莫比乌斯反演
题目大意 定义复数\(a+bi\)为整数\(k\)的约数,当且仅当\(a\)和\(b\)为整数且存在整数\(c\)和\(d\)满足\((a+bi)(c+di)=k\). 定义复数\(a+bi\)的实部 ...
随机推荐
- 二叉树的建立以及遍历的多种实现(python版)
二叉树是很重要的数据结构,在面试还是日常开发中都是很重要的角色. 首先是建立树的过程,对比C或是C++的实现来讲,其涉及到了较为复杂的指针操作,但是在面向对象的语言中,就不需要考虑指针, 内存等.首先 ...
- Spring Boot + Jersey发生FileNotFoundException (No such file or directory)
我在使用Spring Boot + Jersey 项目,解决了上一篇随笔中的FileNotFoundException,然后又报了一个FileNotFoundException,不过报错信息不一样了 ...
- lua函数随记
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在 ...
- Android Studio布局等XML文件怎么改都恢复原状的问题
编译时,XML布局文件报错,点击链接进去改,怎么改,一编译就恢复原状,这是什么原因,问题出在点击错误链接进的是中间生成XML文件,这个文件改动是没用的,需要改动原始layout文件才会生效.
- 解决iframe在移动端(主要iPhone)上的问题
前言 才发现已经有一段时间没有写博客了,就简单的说了最近干了啥吧.前段时间忙了杂七杂八的事情,首先弄了个个人的小程序,对的,老早就写了篇从零入手微信小程序开发,然后到前段时间才弄了个简单的个人小程序, ...
- 转载 Java设计模式
java常用设计模式 1.strategy(策略模式)2.static Factory Method(静态工厂)3.singelton(单例模式)4.观察者模式(Observer)5.迭代器模式( ...
- Spring-mvc设置@RequestMapping标签更改返回头及@RequestMapping简述
1. 引子:设置返回头 2. 简述 3. value 4. method 5. consumes/produces 6. params 7. headers 1. 引子:设置返回头 返回JSON内容时 ...
- Effective C++ 读书笔记(13-32)
条款一十三:以对象管理资源 1.把资源放进对象内,我们便可依赖C++的“析构函数自动调用机制“确保资源被释放. 2.auto_ptr是个”类指针对象“,也就是所谓”智能指针“,其析构函数自动对其所指对 ...
- 判断NaN in JavaScript
[NaN 作用是用来表示一个值不是数字] NaN在JavaScript中行为很怪异,是因为那NaN和任何值都不相等(包括它自己). NaN === NaN; // false因为 ...
- table中的一些另类标签
thead/tbody/tfoot/caption/colgroup 注意:thead/tbody/tfoot三部分内容不受编辑顺序影响只和标签本身含义从头到脚显示不能把两个tbody的内容进行合并单 ...