博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ 4916]神犇和蒟蒻
阅读量:5957 次
发布时间:2019-06-19

本文共 2125 字,大约阅读时间需要 7 分钟。

Description

\[ sum_G(n)=\sum_{i=1}^n \mu(i^2)\\sum_F(n)=\sum_{i=1}^n \phi(i^2) \]

Solution 

  • For all cases,\(G(n)=n\)

    Because \(G(i^2)=[i==1]\)

  • \[ \begin{equation} \begin{split} F(n)&=\sum_{i=1}^n \phi(i^2)\\ &=\sum_{i=1}^{n} i\cdot \phi(i)\\ \end{split} \end{equation}\\ \]

  • \[ \begin{equation} \begin{split} &\sum_{i=1}^n\sum_{d|i}d \cdot \phi(d)\cdot\frac{i}{d}\\=&\sum_{i=1}^ni\cdot \sum_{d|i}d\cdot\phi(d)\\ =&\sum_{i=1}^ni^2 \\=&\frac{n(n+1)(2n+1)}{6} \end{split} \end{equation} \]

  • \[ \sum_{i=1}^n(Id*F)(i)=\frac{n(n+1)(2n+1)}{6} \]

  • \[ \begin{equation} \begin{split} Sum_F(n)=&\sum_{i=1}^n(Id*F)(i)-\sum_{i=2}^{n}i\cdot F(\lfloor\frac{n}{i}\rfloor)\\ =&\frac{n(n+1)(2n+1)}{6}-\sum_{i=2}^{n}i\cdot F(\lfloor\frac{n}{i}\rfloor) \end{split} \end{equation} \]

Code 

#include
#define reg registerusing namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*f;}const int MN=1e9,MX=1e6+5,M=1e6,mod=1e9+7,inv6=166666668,inv2=500000004;int N,F[MX],phi[MX];int Mul(int x,int y){return 1ll*x*y%mod;}int Add(int x,int y){return (x+y)%mod;}void init(){ static int prime[MX],tot; static bool mark[MX]; reg int i,j; phi[1]=1; for(i=2;i<=M;++i) { if(!mark[i]){prime[++tot]=i;phi[i]=i-1;} for(j=1;j<=tot&&i*prime[j]<=M;++j) { mark[i*prime[j]]=true; if(i%prime[j]==0){phi[i*prime[j]]=Mul(phi[i],prime[j]);break;} else phi[i*prime[j]]=Mul(phi[i],phi[prime[j]]); } } for(i=1;i<=M;++i) phi[i]=Add(Mul(phi[i],i),phi[i-1]);}int S(int x){return Mul(x,Mul(x+1,inv2));}int calc(int n){ if(n<=M) return phi[n]; if(F[N/n]) return F[N/n]; int res=Mul(Mul((n+1),Mul((2*n+1),n)),inv6); for(int l=2,r;l<=n;l=r+1) { r=n/(n/l); res=Add(res,mod-Mul(Add(S(r),mod-S(l-1)),calc(n/l))); } return F[N/n]=res;}int main(){ N=read(); puts("1");init(); printf("%lld\n",calc(N)); return 0;}


Blog来自PaperCloud,未经允许,请勿转载,TKS!

转载于:https://www.cnblogs.com/PaperCloud/p/bzoj_4916.html

你可能感兴趣的文章
HttpServletResponse对象(一)
查看>>
linux memcached开机启动
查看>>
敏捷初体验--没有最好只有最合适
查看>>
MVC中Controller与View中间的数据传递的常用方法
查看>>
过拟合是什么?如何解决过拟合?l1、l2怎么解决过拟合
查看>>
WPF中如何在文本外面加虚线外框
查看>>
天天沉迷于皇上本宫的都是sb
查看>>
满江红.互联网
查看>>
[PHP] 算法-快速排序的PHP实现
查看>>
docker 命令详解
查看>>
深入浅出的webpack4构建工具---Scope Hoisting(十六)
查看>>
git问题整理
查看>>
jboss eap6.1(1)
查看>>
Oracle中使用PL/SQL如何定义参数、参数赋值、输出参数和 if 判断
查看>>
visualsvn server 提交修改日志
查看>>
理解 React Hooks
查看>>
Linux网卡调优篇-禁用ipv6与优化socket缓冲区大小
查看>>
python布尔类型和逻辑运算
查看>>
谈谈到底什么是抽象,以及软件设计的抽象原则
查看>>
RabbitMQ 基础概念
查看>>