HDU 6265 Master of Phi
Master of Phi
推式子
∑d∣n?(nd)d給出了n的唯一分解形式我們先對(duì)上面式子進(jìn)行化簡(jiǎn)通過(guò)組合枚舉d,d的取值分別可以通過(guò)∏i=1m∑j=0qipij,一個(gè)多項(xiàng)式組合得到那么上述的式子有沒(méi)有可能也通過(guò)這種新式得到呢,好像是可以的∑d∣n?(nd)d=∏i=1m∑j=0qi?(pij)piqipij我們隨意枚舉一項(xiàng)∑j=0qi?(pij)piqipij出來(lái)pq,(p?1)pq?1,(p?1)pq?1…(p?1)pq?1=pq?1(pq+p?q)然后就是簡(jiǎn)單的代碼實(shí)現(xiàn)了。\sum_{d \mid n} \phi(\frac{n}ozvdkddzhkzd)d\\ 給出了n的唯一分解形式\\ 我們先對(duì)上面式子進(jìn)行化簡(jiǎn)\\ 通過(guò)組合枚舉d,d的取值分別可以通過(guò)\prod_{i = 1} ^{m} \sum_{j = 0} ^{q_i} p_{i} ^{j},一個(gè)多項(xiàng)式組合得到\\ 那么上述的式子有沒(méi)有可能也通過(guò)這種新式得到呢,好像是可以的\\ \sum_{d \mid n} \phi(\frac{n}ozvdkddzhkzd)d = \prod_{i = 1} ^{m} \sum_{j = 0} ^{q_{i}}\phi(p_{i} ^ j) \frac{p_{i} ^{q_i}}{p_{i} ^j}\\ 我們隨意枚舉一項(xiàng)\sum_{j = 0} ^{q_{i}}\phi(p_{i} ^ j) \frac{p_{i} ^{q_i}}{p_{i} ^j}出來(lái)\\ p ^ q,(p - 1) p ^{q - 1}, (p - 1) p ^{q - 1} \dots(p - 1)p ^{q - 1}\\ = p ^{q - 1} (pq + p - q)\\ 然后就是簡(jiǎn)單的代碼實(shí)現(xiàn)了。 d∣n∑??(dn?)d給出了n的唯一分解形式我們先對(duì)上面式子進(jìn)行化簡(jiǎn)通過(guò)組合枚舉d,d的取值分別可以通過(guò)i=1∏m?j=0∑qi??pij?,一個(gè)多項(xiàng)式組合得到那么上述的式子有沒(méi)有可能也通過(guò)這種新式得到呢,好像是可以的d∣n∑??(dn?)d=i=1∏m?j=0∑qi???(pij?)pij?piqi???我們隨意枚舉一項(xiàng)j=0∑qi???(pij?)pij?piqi???出來(lái)pq,(p?1)pq?1,(p?1)pq?1…(p?1)pq?1=pq?1(pq+p?q)然后就是簡(jiǎn)單的代碼實(shí)現(xiàn)了。
代碼
/*Author : lifehappy */ #include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod = 998244353;ll quick_pow(ll a, int n) {ll ans = 1;while(n) {if(n & 1) ans = ans * a % mod;a = a * a % mod;n >>= 1;}return ans; }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--) {int n;scanf("%d", &n);ll ans = 1;for(int i = 1; i <= n; i++) {ll p, q;scanf("%lld %lld", &p, &q);ll temp = ((p * q % mod + p - q) % mod + mod) % mod;ans = ans * quick_pow(p, q - 1) % mod * temp % mod;}printf("%lld\n", ans);}return 0; }總結(jié)
以上是生活随笔為你收集整理的HDU 6265 Master of Phi的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: soho路由器怎么设置电信宽带路由器怎么
- 下一篇: win11任务栏图标不习惯win11不显