日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[BZOJ 4916]神犇和蒟蒻

發(fā)布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BZOJ 4916]神犇和蒟蒻 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

傳送門

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}ozvdkddzhkzd\\=&\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<bits/stdc++.h> #define reg register using 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,未經(jīng)允許,請勿轉載,TKS!

轉載于:https://www.cnblogs.com/PaperCloud/p/bzoj_4916.html

總結

以上是生活随笔為你收集整理的[BZOJ 4916]神犇和蒟蒻的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。