洛谷 P3768 簡單的數學題

2022-05-21 19:24:08 字數 1760 閱讀 9239

化簡一下式子,就是$\sum_^ncalc(d)d^2\varphi(d)$

其中$calc(d)=\frac\frac+1)^2\frac}^2}$

可以對calc(d)做整除分塊,那麼要求$d^2\varphi(d)$的字首和

看一眼資料範圍,大概要杜教篩

湊了一會,發現令$f(d)=d^2\varphi(d)$,$g(d)=d^2$,$h=f*g$,那麼$h(n)=n^2\sum_\varphi(d)=n^3$

(也就是說$id^3=id^2\varphi*id^2$,好神奇啊)

那麼就好辦了,$n^3$的字首和是有公式的($1^3+2^3+..+n^3=(1+2+..+n)^2$)

杜教篩那個式子套一下就行了。。也可以預處理一點字首和

複雜度?...不會算

以下是瞎扯:

設預處理1-k

算一次x,複雜度是$f(x)=\sum_^\sqrt}=o(\frac})$

後半部分複雜度是$\sum_^f(\frac)=nk^}\sum_^\frac=nk^}log(n/k)$

總複雜度是$nk^}log(n/k)+k$

當$k=n^}$時,複雜度是$n^}log$

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7#define fi first

8#define se second

9#define mp make_pair

10#define pb push_back

11 typedef long

long

ll;12 typedef unsigned long

long

ull;

13 typedef pairpii;

14ll md;

15ll h(ll n)

1620

ll g(ll n)

2124 ll mod(ll n,ll d=md)

2530

const ll k=5000000

;31 ll hh[k+100],prime[k+100

],len;

32bool nprime[k+100

];33 mapma;

34ll calc(ll n)

3544

return ma[n]=ans;45}

46ll n;

47ll x(ll d)

4852

ll ans;

53int

main()

5462

for(j=1;j<=len&&i*prime[j]<=k;j++)

6370

else

71 hh[i*prime[j]]=hh[i]*(prime[j]-1

);72}73

}74for(i=1;i<=k;i++) hh[i]=hh[i]*i%md*i%md;

75for(i=1;i<=k;i++) hh[i]=(hh[i-1]+hh[i])%md;

76//

while(1)

77//

81for(i=1;i<=n;i=j+1)82

86 printf("

%lld

",ans);

87return0;

88 }

洛谷 3768 簡單的數學題

根據crash的數字 很容易可以將式子化簡為 begin ans sum limits n sum limits ij i,j sum limits n d 3 sum limits right rfloor mu k k 2 left sum limits right rfloor i right...

洛谷3768 簡單的數學題 題解

題面來自洛谷,因為沒用markdown所以直接截的圖。剩餘的圖是我用markdown寫完然後截的圖。參考洛谷第一篇題解。這個式子直觀感受就需要莫比烏斯反演,大致的過程參考 bzoj2693 jzptab 那麼跳過暴力推式子,我們能夠得到 如果你疑問為什麼是miu k d 而不是miu d 其實二者皆...

小學數學題 洛谷p2921

露公尺婭 我來先考你一道小學數學題吧!琪露諾 好!小學的題我肯定都會!露公尺婭 有 n n n 只妖精要跨過霧之湖,由於湖邊大霧瀰漫,妖精們看不清湖到底有多大,不想從邊上繞過去。湖上有一條船個傳送器,且這個傳送器每次只能載 r r r 只妖精跨過湖面 注意傳送器可以同時把兩側的妖精分別運到對岸,但每...