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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)

發(fā)布時(shí)間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Easy Problem

∑a1=1m∑a2=1m∑a3=1m?∑an?1m∑anm[gcd(a1,a2,a3,…,an?1,an)==d](a1,a2,a3,…,an?1,an)k=dkd∑a1=1md∑a2=1md∑a3=1md?∑an?1md∑anmd[gcd(a1,a2,a3,…,an?1,an)==1](a1,a2,a3,…,an?1,an)k=dkd∑i=1mdikdμ(i)∑a1=1mid∑a2=1mid∑a3=1mid?∑an?1=1mid∑an=1mid(∏j=1nai)k這是一個(gè)多項(xiàng)式=dkd∑i=1mdikdμ(i)(∑j=1midiK)n\sum_{a_1 = 1} ^{m} \sum_{a_2 = 1} ^{m} \sum_{a_3 = 1} ^{m} \dots \sum_{a_{n - 1}} ^{m}\sum_{a_n} ^{m} [gcd(a_1, a_2, a_3, \dots, a_{n - 1}, a_{n}) == d](a_1, a_2, a_3, \dots,a_{n - 1}, a_n) ^k\\ = d ^{kd} \sum_{a_1 = 1} ^{\frac{m}ozvdkddzhkzd} \sum_{a_2 = 1} ^{\frac{m}ozvdkddzhkzd} \sum_{a_3 = 1} ^{\frac{m}ozvdkddzhkzd} \dots \sum_{a_{n - 1}} ^{\frac{m}ozvdkddzhkzd}\sum_{a_n} ^{\frac{m}ozvdkddzhkzd} [gcd(a_1, a_2, a_3, \dots, a_{n - 1}, a_{n}) == 1](a_1, a_2, a_3, \dots,a_{n - 1}, a_n) ^k\\ =d ^{kd} \sum_{i = 1} ^{\frac{m}ozvdkddzhkzd}i ^{kd} \mu(i) \sum_{a_1 = 1} ^{\frac{m}{id}}\sum_{a_2 = 1} ^{\frac{m}{id}}\sum_{a_3 = 1} ^{\frac{m}{id}}\dots\sum_{a_{n - 1} = 1} ^{\frac{m}{id}}\sum_{a_{n} = 1} ^{\frac{m}{id}} (\prod_{j = 1} ^{n} a_i) ^k\\ 這是一個(gè)多項(xiàng)式\\ = d ^{kd} \sum_{i = 1} ^{\frac{m}ozvdkddzhkzd}i ^{kd} \mu(i) (\sum_{j = 1} ^{\frac{m}{id}}i ^K) ^n a1?=1m?a2?=1m?a3?=1m??an?1?m?an?m?[gcd(a1?,a2?,a3?,,an?1?,an?)==d](a1?,a2?,a3?,,an?1?,an?)k=dkda1?=1dm??a2?=1dm??a3?=1dm???an?1?dm??an?dm??[gcd(a1?,a2?,a3?,,an?1?,an?)==1](a1?,a2?,a3?,,an?1?,an?)k=dkdi=1dm??ikdμ(i)a1?=1idm??a2?=1idm??a3?=1idm???an?1?=1idm??an?=1idm??(j=1n?ai?)k個(gè)項(xiàng)=dkdi=1dm??ikdμ(i)(j=1idm??iK)n

到這里這道題目就化簡(jiǎn)完成了,只需要通過簡(jiǎn)單的數(shù)列求和加歐拉降冪即可得到答案。

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f; const double eps = 1e-6;const int N = 1e5 + 10, mod = 59964251, phi = 59870352;int mu[N], prime[N], cnt;ll m, d, k, n, sum[N];bool st[N];char str[N];ll quick_pow(ll a, int n, int mod = 59964251) {ll ans = 1;while(n) {if(n & 1) ans = ans * a % mod;a = a * a % mod;n >>= 1;}return ans; }void init() {memset(st, 0, sizeof st);cnt = 0;mu[1] = 1, sum[1] = 1;for(int i = 2; i < N; i++) {if(!st[i]) {mu[i] = -1;prime[cnt++] = i;sum[i] = quick_pow(i, k);}for(int j = 0; j < cnt && i * prime[j] < N; j++) {st[i * prime[j]] = 1;sum[i * prime[j]] = sum[i] * sum[prime[j]] % mod;if(i % prime[j] == 0) break;mu[i * prime[j]] = -mu[i];}} for(int i = 1; i < N; i++) {sum[i] = (sum[i] + sum[i - 1]) % mod;} }ll solve(ll m) {ll ans = 0;for(ll i = 1; i <= m; i++) {ans = ans + 1ll * mu[i] * quick_pow(i, k * n % phi + phi) % mod * quick_pow(sum[m / i], n + phi) % mod;}return (ans % mod + mod) % mod; }int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T;scanf("%d", &T);while(T--) {scanf("%s %lld %lld %lld\n", str + 1, &m, &d, &k);init();int len = strlen(str + 1);n = 0;for(int i = 1; i <= len; i++) {n = n * 10 + str[i] - '0';n %= phi;}ll ans = quick_pow(d, k * n % phi + phi) * solve(m / d) % mod;printf("%lld\n", ans);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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