bzoj4916 神犇和蒟蒻

2022-05-25 15:18:12 字數 1218 閱讀 5848

time limit: 10 sec memory limit: 512 mb很久很久以前,有乙隻神犇叫yzy;

很久很久之後,有乙隻蒟蒻叫lty;

請你讀入乙個整數n;1<=n<=1e9,a、b模1e9+7;

請你輸出乙個整數\(a=\sum_^n\)

請你輸出乙個整數\(b=\sum_^n\)

1第一問不會的可以去找豆腐撞死了。。。。(撞之前你可以在想一想看能不能搶救一下。。。)

你輸了 1 這道題就做一半了233.。。。

不鬧了。。。。

\[\sum_^n \phi(i^2)

\]\[=\sum_^n \phi(i)i

\]設 \(f(x)= \phi(i)i \ \ \ \ \ \ \ \ \ \ \ \ \ f × id = h\)

\[h(x)=\sum_f(d)\ \frac

\]\[=\sum_\mu(d)n

\]\[=n^2

\]你很容易就可以求到了 \(id\) 和 \(h\) 的字首和,就可以杜教篩啦!

你列個式子出來看可以發現 \(\phi(i^2)=\phi(i)i\)

然後由於你有個杜教篩的幻想,你要去湊那個卷積。。。。

瞎搞了啊。。。我也很絕望啊。。。

#includeusing namespace std;

const int n = 2500000, mod = 1e9 + 7;

int tot, prime[n];

long long n, inv6, inv2, phi[n];

bool not_prime[n];

mapp;

inline void prepare()

for(int j = 1; prime[j] * i < n; ++j)

phi[i * prime[j]] = phi[i] * (prime[j] - 1);

} }for(int i = 2; i < n; ++i) phi[i] = (phi[i - 1] + phi[i] * i) % mod;

}long long phi(long long t)

p[t] = ret; return ret;

}inline void get_inv()

p = mod - 2; inv2 = 1; tmp = 2;

while(p)

}int main()

BZOJ 4916 神犇和蒟蒻

很久很久以前,有乙隻神犇叫yzy 很久很久之後,有乙隻蒟蒻叫lty 請你讀入乙個整數n 1 n 1e9,a b模1e9 7 請你輸出乙個整數a sum n 請你輸出乙個整數b sum n 1by monster yi 杜教篩 推導詳見 其中ni2和ni6分別是2和6的逆元,是用快速冪求出來的 inc...

bzoj4916 神犇和蒟蒻

求 i 1n i2 和 i 1n i2 n 1e9,答案對1e9 7取模 被題目名字和ac人數騙進來,一看題還嚇了一跳 難道這是什麼最新的操作.jpg 然後仔細看了一眼題 mdzz這不是隨便做嗎?的話除了i 1不是全部為0嗎?的話把式子拆出來就可以發現 i2 i i 然後就直接上杜教篩就好了。隱藏水...

bzoj4916 神犇和蒟蒻

首先看第乙個式子,根據莫比烏斯函式的性質可知,當i 1時,i 1 其它都是0.所以輸出1 然後看第二個式子。根據尤拉函式的性質,平方的部分多出來的質因數已經出現過,所以式子變成 n i 1i i 這個用杜教篩來求。include include include include using names...