直接反演一下:∑i=1n∑i=1nf(gcd(i,j))k\sum_{i = 1}^n\sum_{i = 1}^nf(gcd(i,j))^ki=1∑n​i=1∑n​f(gcd(i,j))k=∑d=1n∑i=1⌊nd⌋∑i=1⌊nd⌋f(d)k∗[gcd(i,j)=1]=\sum_{d = 1}^n\sum_{i = 1}^{\lfloor\frac{n}{d}\rfloor}\sum_{i = 1}^{\lfloor\frac{n}{d}\rfloor}f(d)^k * [gcd(i,j) = 1]=d=1∑n​i=1∑⌊dn​⌋​i=1∑⌊dn​⌋​f(d)k∗[gcd(i,j)=1]=∑d=1nf(d)k∑p=1⌊nd⌋μ(p)∗⌊np∗d⌋2=\sum_{d = 1}^nf(d)^k\sum_{p = 1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)*{\lfloor\frac{n}{p*d}\rfloor}^2=d=1∑n​f(d)kp=1∑⌊dn​⌋​μ(p)∗⌊p∗dn​⌋2=∑T=1n⌊nT⌋2∑d∣Tf(d)kμ(Td)=\sum_{T = 1}^n{\lfloor\frac{n}{T}\rfloor}^2\sum_{d | T}f(d)^k\mu(\frac{T}{d})=T=1∑n​⌊Tn​⌋2d∣T∑​f(d)kμ(dT​)这个式子可以分块,需要预处理右半边前缀和。
令g(T)=∑d∣Tf(d)kμ(Td)g(T) = \sum_{d | T}f(d)^k\mu(\frac{T}{d})g(T)=∑d∣T​f(d)kμ(dT​),则g(T)=fk∗μg(T) = f^k * \mug(T)=fk∗μ,∗*∗代表卷积
按杜教筛的套路,将ggg函数卷上 III 函数进行求和,令 h=g∗I=fkh = g * I =f^kh=g∗I=fk
∑i=1nh(i)\sum_{i = 1}^nh(i) i=1∑n​h(i)=∑i=1n∑d∣iI(d)∗g(id)= \sum_{i = 1}^n\sum_{d | i}I(d) * g(\frac{i}{d})=i=1∑n​d∣i∑​I(d)∗g(di​)=∑d=1nI(d)∑i=1⌊nd⌋g(i)=\sum_{d = 1}^nI(d)\sum_{i = 1}^{\lfloor\frac{n}{d}\rfloor}g(i)=d=1∑n​I(d)i=1∑⌊dn​⌋​g(i)=∑d=1nI(d)S(⌊nd⌋)=∑d=1nS(⌊nd⌋)=\sum_{d = 1}^nI(d)S({\lfloor\frac{n}{d}\rfloor})=\sum_{d = 1}^nS({\lfloor\frac{n}{d}\rfloor})=d=1∑n​I(d)S(⌊dn​⌋)=d=1∑n​S(⌊dn​⌋)提出第一项 I(1)S(n)=S(n)I(1)S(n) = S(n)I(1)S(n)=S(n) 并移项:S(n)=∑i=1nh(i)−∑i=2nS(⌊ni⌋)S(n) = \sum_{i = 1}^nh(i) - \sum_{i = 2}^nS(\lfloor\frac{n}{i}\rfloor)S(n)=i=1∑n​h(i)−i=2∑n​S(⌊in​⌋)S(n)=∑i=1nf(i)k−∑i=2nS(⌊ni⌋)S(n) = \sum_{i = 1}^nf(i)^k - \sum_{i = 2}^nS(\lfloor\frac{n}{i}\rfloor)S(n)=i=1∑n​f(i)k−i=2∑n​S(⌊in​⌋)f(i)kf(i)^kf(i)k可以用min_25筛筛出来,筛法和Uoj 188相同,但是这题f(i)f(i)f(i)质数部分贡献不为0,先筛出合数部分再加上质数部分即可。由于递归版没有记忆化,杜教筛里每次都要计算会T,因此需要用递推版,并且由于模数是 2322^{32}232,可以用 unsigned int 类型自然溢出来取代取模运算减少常数。


代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 10;
const ll mod = 1ll << 32;
bool ispri[maxn];
ll pri[maxn], num, tot;
ll pw[maxn];
ll g[maxn], id1[maxn], id2[maxn], w[maxn], sqr;
ll sum[maxn];
ll n, k;
ll mp[maxn];
ll fpow(ll a, ll b) {ll r = 1;while (b) {if (b & 1)r = r * a % mod;a = a * a % mod;b >>= 1;}return r;
}
void sieve(int n) {ispri[0] = ispri[1] = true;num = 0;for (int i = 2; i <= n; i++) {if (!ispri[i])pri[++num] = i;for (int j = 1; j <= num && i * pri[j] <= n; j++) {ispri[i * pri[j]] = true;if (i % pri[j] == 0)break;}}
}
/*ll S(ll x, ll y) {            //递归版,T飞if (pri[y] > x)return 0;ll z = x <= sqr ? id1[x] : id2[n / x];ll res = 0;for (ll i = y + 1; i <= num && pri[i] * pri[i] <= x; i++) {for (ll e = 1, pe = pri[i]; pe * pri[i] <= x; e++, pe *= pri[i]) {ll t = x / pe;ll k = t <= sqr ? id1[t] : id2[n / t];res += (S(t, i) + (g[k] - i + 1) % mod * pw[i] % mod) % mod;res %= mod;}}return res;
}*/
ll getsum(ll x) {                       //杜教筛ll t = x <= sqr ? id1[x] : id2[n / x];if (mp[t] != -1)return mp[t];ll res = (sum[t] + g[t]) % mod;for (ll i = 2, j; i <= x; i = j + 1) {j = x / (x / i);res -= getsum(x / i) * (j - i + 1) % mod;if (res < 0)res += mod;}return mp[t] = res;
}
int main() {sieve(maxn - 10);scanf("%lld%lld", &n, &k);memset(mp, -1, sizeof mp);for (int i = 1; i <= num; i++) {pw[i] = fpow(pri[i], k);}sqr = sqrt(n);for (ll i = 1, j; i <= n; i = j + 1) {        //min_25筛离散化j = n / (n / i);w[++tot] = n / i;g[tot] = (w[tot] - 1) % mod;if (n / i <= sqr)id1[n / i] = tot;elseid2[j] = tot;}for (int i = 1; i <= num; i++) {         //min_25筛预处理 gfor (int j = 1; j <= tot && pri[i] * pri[i] <= w[j]; j++) {ll t = w[j] / pri[i];ll k = t <= sqr ? id1[t] : id2[n / t];g[j] -= (g[k] - i + 1) % mod;if (g[j] < 0)g[j] += mod;}}for (int i = num; i >= 1; i--) {           //min_25筛 递推版for (int j = 1; j <= tot && pri[i] * pri[i] <= w[j]; j++) {for (ll e = 1, pe = pri[i]; pe * pri[i] <= w[j]; pe = pe * pri[i]) {ll t = w[j] / pe;ll k = t <= sqr ? id1[t] : id2[n / t];sum[j] += (sum[k] + (g[k] - i + 1) % mod * pw[i] % mod) % mod;sum[j] %= mod;}}}ll ans = 0;for (ll i = 1, j; i <= n; i = j + 1) {j = n / (n / i);ll p = n / i % mod;ans += (getsum(j) - getsum(i - 1) + mod) % mod * p * p % mod;ans %= mod;}printf("%lld\n", ans);return 0;
}

Loj #572. 「LibreOJ Round #11」Misaka Network 与求和(莫比乌斯反演 + 杜教筛 + min_25筛(递推版))相关推荐

  1. LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛

    题目:https://loj.ac/problem/572 莫比乌斯反演得 \( ans=\sum\limits_{D=1}^{n}\left\lfloor\frac{n}{D}\right\rflo ...

  2. Loj#572. 「LibreOJ Round #11」Misaka Network 与求和

    题目 有生之年我竟然能\(A\) 这个题求的是这个 \[\sum_{i=1}^n\sum_{j=1}^nf(gcd(i,j))^k\] \(f(i)\)定义为\(i\)的次大质因子,其中\(f(p)= ...

  3. [LOJ]#572. 「LibreOJ Round #11」Misaka Network 与求和 min_25筛+杜教筛

    Solution 推一下式子,容易得到一个线性做法:∑d=1nfk(d)((2∑i=1⌊ni⌋φ(i))−1)\sum_{d=1}^nf^k(d)((2\sum_{i=1}^{\lfloor{n\ov ...

  4. LOJ572. 「LibreOJ Round #11」Misaka Network 与求和 [莫比乌斯反演,杜教筛,min_25筛]

    传送门 思路 (以下令\(F(n)=f(n)^k\)) 首先肯定要莫比乌斯反演,那么可以推出: \[ ans=\sum_{T=1}^n \lfloor\frac n T\rfloor^2\sum_{d ...

  5. 「LibreOJ Round #11」Misaka Network 与求和(杜教筛 + Min_25)

    #572. 「LibreOJ Round #11」Misaka Network 与求和 推式子 ∑i=1n∑j=1nf(gcd(i,j))k∑d=1nf(d)k∑i=1nd∑j=1nd[gcd(i,j ...

  6. LOJ #570. 「LibreOJ Round #11」Misaka Network 与任务

    观察发现,肯定是1个或两个最优. #include<bits/stdc++.h> #define ll long long #define ull unsigned ll #define ...

  7. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)

    description 研究者们想要测试 Misaka Network,于是他们把 Misaka Network 中的所有妹妹们召集到了一起. 现在妹妹们排成了 N行 M 列,有的位置没有人.现在研究 ...

  8. 「LibreOJ Round #11」Misaka Network 与测试【二分图最大匹配+读入坑点】

    题目链接 LOJ 569 这道题的坑点或许不在于想到这个算法,而是在于这里有读入的坑点,会使得你在本地编译正确而在题目判断的时候得到WA. 因为,题目的操作系统是win的,而我自己的编译器是Mac O ...

  9. 「LibreOJ Round #11」Misaka Network 与任务

    题解: 显然只需要知道某几位上是111的有多少个就可以容斥了,这个用枚举子集可以做到O(3n)" role="presentation" style="posi ...

最新文章

  1. mysql补丁如何安装_神技_如何快捷下载Oracle补丁的方法?!
  2. jbpm binding类深入解析
  3. C++中的friend详细解析
  4. linux查看进程相关命令
  5. jMeter HTTP Request Defaults 的学习笔记
  6. 【04】泛型中的桥方法
  7. CSS3-边框-外轮廓-文本-渐变-WEB字体
  8. body 没有被撑开_父div没有被撑开,该怎么解决?_html/css_WEB-ITnose
  9. java懒汉,[Java教程]java 懒汉式
  10. noVNC使用浏览器替代VNC客户端
  11. Axure RP 8 最新注册码
  12. mysql汽车租赁管理系统
  13. Hadoop “Hello World” 示例
  14. 医学超声成像—合成孔径法(Synthetic Aperture Methods)[1]
  15. lpad用法 oracle,oracle lpad 的用法
  16. 锆石科技开发板的简单介绍
  17. RFID防盗安全门,自助借还书机,让图书馆发展进入新的里程碑
  18. Signatures and Zero-Knowledge Proofs
  19. 四年级计算机考试反思,四年级期中考试反思作文300字 关于期中考试反思的作文...
  20. Ai机器人可以入国籍、可以当主播,当然也可以当电销精英

热门文章

  1. 说服:瓦解反对和质疑
  2. 忘记 WinXP 登录密码的解决方案
  3. 偶然出现 segmentation fault 时的调试方法与 SIGSEGV 信号
  4. 【SAM】BZOJ5137 [Usaco2017 Dec] Standing Out from the Herd
  5. EasyTouch_简单触控
  6. openflow中流表的概念
  7. 神州数码融信2019面试题
  8. Eslint 规则说明
  9. 用keil刚打开项目后,跳出的与pdsc文件相关的错误解决方法
  10. SSL加速和证书卸载的配置方式