当前位置: 首页 > news >正文

寒假集训Week1

狄利克雷卷积

CF757E

Link

很巧妙,可以很明显发现:

\[f_{r+1}(n)=\sum_{d\mid n} f_r(n) \]

\[f_0(n)=2^{\Omega(n)} \]

\(f\)函数的值与质因数的确切值无关。而发现 \(f\) 为积性函数。那么可以对于每一个质因数,和他分别的指数,预处理出形如 \(f_r(p^q)\) 的形式的函数值,再分解质因数计算即可。
代码:

#include <bits/stdc++.h>
#define FASTIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int R = 1e6 + 5;
const int LG = 22;
const int Md = 1e9 + 7;
ll ans[R][LG];
int lp[R];
vector<int> prim;
void init(void) {ans[0][0] = 1;for (int i = 1; i <= LG; ++i) ans[0][i] = 2;for (int i = 1; i < R; ++i) {ans[i][0] = 1;for (int j = 1; j < LG; ++j) ans[i][j] = (ans[i][j - 1] + ans[i - 1][j]) % Md;}
}
void get_primes(void) {for (int i = 2; i < R; ++i) {if (!lp[i]) {lp[i] = i;prim.push_back(i);}for (auto p : prim) {if (i * p >= R) break;lp[i * p] = p;if (i % p == 0) break;}}
}
int main() {FASTIO;init();get_primes();int q;cin >> q;while (q--) {int n, r;cin >> r >> n;ll ret = 1;while (true) {if (n == 1) break;int cnt = 0, lpp = lp[n];while (n % lpp == 0) {n /= lpp;++cnt;}ret = (ret * ans[r][cnt]) % Md;}cout << ret << '\n';}return 0;
}

莫比乌斯反演

LG P1829

Link
恶心的推式子!!!

\[\begin{aligned}\sum_{i=1}^{n}\sum_{j=1}^{m} lcm(i,j) &=\sum_{d=1}^{\min(n,m)} \sum_{i=1}^n \sum_{j=1}^m \frac{ij}{d}[\gcd(i,j)=d] \\ &=\sum_{d=1}^{\min(n,m)}d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} ij[ \gcd(i,j)=1] \\ &=\sum_{d=1}^{\min(n,m)}d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}i\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} j[ \gcd(i,j)=1] \\ &=\sum_{d=1}^{\min(n,m)}d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}i\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} j \times \epsilon(\gcd(i,j)) \\ &=\sum_{d=1}^{\min(n,m)}d\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}i\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor} j \sum_{x \mid \gcd(i,j)}\mu(x) \\ &=\sum_{d=1}^{\min(n,m)}d\sum_{x=1}^{\min(\lfloor \frac{n}{d} \rfloor,\lfloor \frac{m}{d} \rfloor)}\mu(x)\sum_{i=1}^{\lfloor \frac{n}{dx} \rfloor}i\sum_{j=1}^{\lfloor \frac{m}{dx} \rfloor} j \\ \end{aligned} \]

然后就可以套两层整除分块做了。
代码:

#include <bits/stdc++.h>
#define FASTIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int N = 1e7 + 5;
const int Md = 20101009;
#define int ll
vector<int> prime;
int a, b, d;
int lp[N], miu[N], sum[N];
ll rev = (Md + 1) / 2;
ll get(int n, int m) {return n * (n + 1) % Md * rev % Md * m % Md * (m + 1) % Md * rev % Md;
}
ll calc(int n, int m) {if (n > m) swap(n, m);int l = 1, r = 0, ans = 0;for (; l <= min(n, m); l = r + 1) {r = min(n / (n / l), m / (m / l));ans += (sum[r] - sum[l - 1]) * get(n / l, m / l) % Md;ans += Md;ans %= Md;}return ans;
}
ll calc1(int n, int m) {if (n > m) swap(n, m);int l = 1, r = 0, ans = 0;for (; l <= min(n, m); l = r + 1) {r = min(n / (n / l), m / (m / l));ans += (l + r) * rev % Md * (r - l + 1) % Md * calc(n / l, m / l) % Md;ans += Md;ans %= Md;}return ans;
}
void get(void) {miu[1] = 1;for (int i = 2; i < N; ++i) {if (!lp[i]) {lp[i] = i;miu[i] = -1;prime.push_back(i);}for (auto p : prime) {if (i * p >= N) break;lp[i * p] = p;if (i % p == 0) {miu[i * p] = 0;break;}elsemiu[i * p] = -miu[i];}}for (int i = 1; i < N; ++i)sum[i] = (sum[i - 1] + miu[i] * i % Md * i % Md + Md) % Md;
}
signed main() {FASTIO;get();int n, m;cin >> n >> m;cout << calc1(n, m) << '\n';return 0;
}
http://www.jsqmd.com/news/342859/

相关文章:

  • 【毕业设计】基于django+大数据平台的食物营养成分分析与推荐系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • vmware 虚拟机共享文件夹的自动挂载命令
  • [信息论与编码理论专题-20]:数据、信息、编码、信号的区别与关联
  • TypeScript 入门到精通:让你的 JavaScript 代码更具可维护性
  • 2026年郑州咖啡豆烘焙机厂家最新推荐榜单:全自动咖啡烘焙机、大型全自动咖啡豆烘焙机产线、200公斤级咖啡豆烘焙机产线、商用咖啡豆烘焙机、郑州蓝景以全品类适配登榜 - 海棠依旧大
  • 【计算机毕业设计案例】基于django+大数据平台的食物营养成分分析与推荐系统的设计与实现大数据技术和Django框架的健康饮食推荐平台(程序+文档+讲解+定制)
  • 别再一对一去问了:Find the Celebrity 本质是一次“幸存者筛选”
  • dom操作
  • Java实习模拟面试实录:广州小厂高频JVM+并发+MySQL+MQ十连问深度解析
  • 【探索实战】监控、安全与边缘场景的深度落地 - 指南
  • 【时时三省】(C语言基础)结构体的内存对齐
  • 数据平台全景与角色分工——OLTP、OLAP、批/流与数据湖的版图与边界
  • 中国香港股市估值:国际金融中心的市场特点
  • C语言:2026.2.2 (链表)
  • Halo Docker 迁移方式
  • Servlet 进阶!生命周期+3种创建方式+前后台传参,一篇吃透
  • 6款AI论文神器实测:真实参考文献、查重率低、原创度高,轻松搞定论文! - 麟书学长
  • Novel-Plus has business logic vulnerabilities.
  • 程序员入行AI大模型应用开发必须学算法吗?2026最新AI大模型应用开发的核心技术学习线路看这里
  • 【毕业设计】基于springboot+大数据的果园管理系统(源码+文档+远程调试,全bao定制等)
  • 7.4 Kubernetes存储故障排查:PV挂载失败、存储类问题诊断技巧
  • 大模型Agent Skills学习路线:从技能市场到数据预测,一篇搞定
  • 大数据计算机毕设之基于springboot+大数据的果园管理系统_数据可视化大屏分析系统(完整前后端代码+说明文档+LW,调试定制等)
  • 7.3 Kubernetes网络故障排查:CNI插件、Service、Ingress问题诊断
  • 告别金鱼记忆:为AI助手构建人类级记忆系统的完整指南
  • 7.2 Kubernetes备份恢复实战:etcd数据备份与集群灾难恢复方案
  • 22岁女生如何从新闻专业转行成为字节AIGC产品经理
  • 利用 Nimbus-7 SMMR 和 DMSP SSM/I-SSMIS V004 数据进行海冰浓度自举法计算
  • 【计算机毕业设计案例】基于大数据的智慧果园管理系统基于springboot+大数据的果园管理系统(程序+文档+讲解+定制)
  • 6.6 生产级微服务治理总结:从开发到部署的完整最佳实践