集合统计(拆mod关系式 + 欧拉函数)
本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/142521016
http://noip.ybtoj.com.cn/contest/802/problem/6


对于: nmodk+mmodk≥k ,我们可以先把 mod 拆掉:
n−⌊kn⌋×k+m−⌊km⌋×k≥k
两边同时除 k :
⌊kn+m⌋−⌊kn⌋−⌊km⌋≥1
发现式子成立时恰好取等:
⌊kn+m⌋−⌊kn⌋−⌊km⌋=1
这个形式就非常好看,代回原式后就是套路了
k=1∑n+mφ(k)(⌊kn+m⌋−⌊kn⌋−⌊km⌋)
k=1∑n+mφ(k)⌊kn+m⌋−k=1∑nφ(k)⌊kn⌋−k=1∑mφ(k)⌊km⌋
令 f(x)=∑k=1xφ(k)⌊kx⌋ ,则原式为 f(n+m)−f(n)−f(m)
化简 f(x) ,这是个经典问题。对于 φ(k) 的贡献为它有多少个倍数在 x 以内,因此我们枚举这个倍数:
f(x)=i=1∑xi∣k∑φ(k)=i=1∑xi=2x(x−1)
因此原式为 2(n+m)(n+m−1)−n(n−1)−m(m−1)=nm
答案为 φ(n)φ(m)nm