传送门

假设 \(f^k(i)\) 就是 \(f(i)\)

莫比乌斯反演得到

\[ans=\sum_{i=1}^{N}\lfloor\frac{N}{i}\rfloor^2\sum_{d|i}f(d)\mu(\frac{i}{d})
\]

令 \(g(N)=\sum_{i=1}^{N}(f\times \mu)(i)\)

而 \((f\times \mu)\times 1=f\times (\mu\times 1)=f\)

所以

\[\sum_{i=1}^{N}f(i)=\sum_{i=1}^{N}(f\times \mu \times 1)(i)=\sum_{i=1}^{N}g(\lfloor\frac{N}{i}\rfloor)
\]

\[g(N)=\sum_{i=1}^{N}f(i)-\sum_{i=2}^{N}g(\lfloor\frac{N}{i}\rfloor)
\]

类似 \(UOJ188:sanrd\) 一样筛出 \(f\) 的和即可

# include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint; const int maxn(1e6 + 5); inline uint Pow(uint x, int y) {
register uint ret = 1;
for (; y; y >>= 1, x = x * x) if (y & 1) ret = ret * x;
return ret;
} int pr[maxn], tot, id1[maxn], id2[maxn], d, cnt, k;
bitset <maxn> ispr;
uint n, f[maxn], val[maxn], prk[maxn], g[maxn]; inline void Sieve(int mx) {
register int i, j;
for (i = 2, ispr[1] = 1; i <= mx; ++i) {
if (!ispr[i]) pr[++tot] = i, prk[tot] = Pow(i, k);
for (j = 1; j <= tot && pr[j] * i <= mx; ++j) {
ispr[pr[j] * i] = 1;
if (!(i % pr[j])) break;
}
}
} # define ID(x) (x) <= d ? id1[x] : id2[n / (x)] uint Calc(uint x, int m) {
if (x <= 1 || pr[m] > x) return 0;
register uint i, t, ret = 0;
for (i = m; i <= tot && (ll)pr[i] * pr[i] <= x; ++i)
for (t = pr[i]; (ll)pr[i] * t <= x; t *= pr[i])
ret += Calc(x / t, i + 1) + (f[ID(x / t)] - i + 1) * prk[i];
return ret;
} inline void Init(uint _n) {
register uint i, j;
for (cnt = 0, d = sqrt(n = _n), i = 1; i <= n; i = j + 1) {
j = n / (n / i), val[++cnt] = n / i;
val[cnt] <= d ? id1[val[cnt]] = cnt : id2[n / val[cnt]] = cnt;
f[cnt] = val[cnt] - 1;
}
for (i = 1; i <= tot && (ll)pr[i] * pr[i] <= n; ++i)
for (j = 1; j <= cnt && (ll)pr[i] * pr[i] <= val[j]; ++j)
f[j] -= f[ID(val[j] / pr[i])] - i + 1;
} inline uint Solve(uint r) {
if (~g[ID(r)]) return g[ID(r)];
register uint ret = Calc(r, 1) + f[ID(r)], i, j;
for (i = 2, j; i <= r; i = j + 1) j = r / (r / i), ret -= Solve(r / i) * (j - i + 1);
return g[ID(r)] = ret;
} int main() {
memset(g, -1, sizeof(g));
scanf("%u%d", &n, &k), Sieve(sqrt(n)), Init(n);
register uint i, j, ans = 0, lst = 0, cur;
for (i = 1; i <= n; i = j + 1) {
j = n / (n / i), cur = Solve(j);
ans += (n / i) * (n / i) * (cur - lst);
lst = cur;
}
printf("%u\n", ans);
return 0;
}

LOJ572: Misaka Network 与求和的更多相关文章

  1. 【LOJ#572】Misaka Network 与求和(莫比乌斯反演,杜教筛,min_25筛)

    [LOJ#572]Misaka Network 与求和(莫比乌斯反演,杜教筛,min_25筛) 题面 LOJ \[ans=\sum_{i=1}^n\sum_{j=1}^n f(gcd(i,j))^k\ ...

  2. 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 ...

  3. LOJ# 572. 「LibreOJ Round #11」Misaka Network 与求和(min25筛,杜教筛,莫比乌斯反演)

    题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质 ...

  4. 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 ...

  5. 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)= ...

  6. loj 572 Misaka Network 与求和 —— min_25筛

    题目:https://loj.ac/problem/572 推式子:https://www.cnblogs.com/cjoieryl/p/10150718.html 又学习了一下杜教筛hh: 原来 u ...

  7. [LOJ 572] Misaka Network 与求和

    一.题目 点此看题 二.解法 直接推柿子吧: \[\sum_{i=1}^n\sum_{j=1}^nf(\gcd(i,j))^k \] \[\sum_{d=1}^nf(d)^k\sum_{i=1}^{n ...

  8. Min_25 筛小结

    Min_25 筛这个东西,完全理解花了我很长的时间,所以写点东西来记录一些自己的理解. 它能做什么 对于某个数论函数 \(f\),如果满足以下几个条件,那么它就可以用 Min_25 筛来快速求出这个函 ...

  9. 可能是一篇(抄来的)min25学习笔记

    可能是一篇(抄来的)min25学习笔记 一个要求很多的积性函数 我们考虑有一个积性函数,这个函数满足可以快速计算质数处的值 且质数可以写成一个多项式的形式--而且这个多项式如果强行套在合数上,满足积性 ...

随机推荐

  1. AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto

    简评:听说 Oracle JDK 要收费了,Oracle 要限制 Java 的商业或生产用途,针对这个问题,AWS 将会推出 Amazon Corretto. Java 是 AWS 用户使用的最流行的 ...

  2. win7 下如何安装 Microsoft Web Application Stress Tool

    Microsoft Web Application Stress Tool是一个简单易用的性能压力测试工具,但因为其诞生的年代较早,在目前的win7系统下运行,会存在一些兼容性的问题,以下是我在实际使 ...

  3. dbporxy-mysql 协议流转图

    dbproxy 支持 in 查询, 当in 中的字段 属于不同的分表时, QPS约为 5000左右, 如果为 等值查询,  qps的30000左右 主要原因是 对于in操作,会产生多个不同分表的sql ...

  4. User类 新增共有属性Current ID

    一.题目描述 每个用户有用户编号(id),用户名(name),密码(passwd)三个属性.其中: 用户编号(id)由系统自动顺序编号,用户名和密码都是字母.数字.符合的组合,新用户密码,默认“111 ...

  5. Webpack学习错误解决笔记

    错误1:在用npm install 安装模块时,时常会出现没有以下类似的错误 解决方法:右键点击node_modules文件夹,选取属性,将文件夹只读选项去除 错误2:在学习到清理/dist文件夹这块 ...

  6. elasticsearch 基础笔记

    基础: 1.查看 所有节点,及版本 http://192.168.18.7:9200/_nodes/_all/version?pretty=true

  7. hiho# 1398 最大权闭合子图 网络流

    题目传送门 题意:给出n个活动,m个人,请人需要花费$a[i]$的钱,举办一次活动可以赚$b[i]$的钱,但是需要固定的几个人在场,一个人只需要请一次后就必定在场,问最大收益. 思路: 下列结论来自h ...

  8. Mac 10.12安装VirtualBox

    说明:用VirtualBox主要是能开无缝模式. 下载: (链接: https://pan.baidu.com/s/1i5y78Ct 密码: e3bq)

  9. Django获取Header中的信息

    今天需要从header中获取一些信息,查了一些资料,需要注意一下几点: request.META.get("header key") 用于获取header的信息 注意的是heade ...

  10. 3行代码,为QQ轻游戏加上语音互动能力

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云 发表于云+社区专栏 游戏和社交往往有着密不可分的关系,QQ轻游戏就是一款集成在手Q里面的游戏平台,直接通过手Q入口就能随开 ...