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

洛谷P5495 【模板】Dirichlet 前缀和 题解 高维前缀和

题目链接:https://www.luogu.com.cn/problem/P5495

模型转化:

题目要求计算 \(b_k = \sum_{i|k} a_i\)

任何正整数都可以唯一分解为质因子的乘积:\(i = p_1^{\alpha_1} p_2^{\alpha_2} \dots p_m^{\alpha_m}\)

\(i\) 能够整除 \(k\) 的充要条件是:对于 \(k\) 的每一个质因子 \(p_j\),其在 \(i\) 中的指数都小于或等于在 \(k\) 中的指数。这本质上是一个以无限个质数为坐标轴的高维前缀和问题。

高维前缀和(SOS DP):

就像求多维数组前缀和一样,我们不需要使用容斥原理,而是可以逐维累加。

在数论中,每一个质数 \(p\) 就代表其中的一维。因此,我们可以外层循环枚举所有小于等于 \(n\) 的质数 \(p\),内层循环从小到大枚举倍数,更新 \(a_{j \cdot p} \leftarrow a_{j \cdot p} + a_{j}\)

示例程序:

#include <bits/stdc++.h>
using namespace std;
using uint = unsigned int;
const int maxn = 2e7 + 5;uint seed;
inline uint getnext(){seed^=seed<<13;seed^=seed>>17;seed^=seed<<5;return seed;
}
int n;uint a[maxn], ans;bool isp[maxn];
int prime[maxn / 10], m;
void init(int n) {for (int i = 2; i <= n; i++) {if (!isp[i]) {prime[++m] = i;for (int j = i; j <= n/i; j++)isp[i * j] = true;}}
}int main() {cin >> n >> seed;for (int i = 1; i <= n; i++)a[i] = getnext();init(n);for (int i = 1; i <= m; i++) {for (int j = 1; prime[i] * j <= n; j++) {a[prime[i] * j] += a[j];}}for (int i = 1; i <= n; i++)ans ^= a[i];cout << ans << endl;return 0;
}
http://www.jsqmd.com/news/839113/

相关文章:

  • 基于全域数学0-1-∞体系的1.237宇宙临界常数及时空超导统一理论
  • 空间智能领域技术团队画像-这群人撑起行业底座 - 速递信息
  • 交管部门选交通事故勘查系统的3档靠谱方案 - 速递信息
  • AI赋能IT支持:Gemini3.1Pro工单处理闭环实战
  • 基于检索增强生成(RAG)的私有代码库AI助手部署与调优指南
  • 基于Hugo与DevOps的现代化静态博客搭建与优化实战
  • 2026四川高尔夫模拟器与足球场建设服务商深度测评:室内高尔夫、果岭定制、人造草坪全品类指南 - 深度智识库
  • LLM 的(较少为人知的)崛起应用
  • 武汉好运发搬家:江汉专业的空调维修公司 - LYL仔仔
  • 口碑好的广东油烟分离油烟机品牌哪个创新 - 品牌企业推荐师(官方)
  • 为什么高性能场景选用PostgreSQL 而不是 MySQL
  • Zotero文献元数据规范化终极指南:告别混乱,一键格式化
  • NotebookLM“看似合理实则错误”的5种典型幻觉模式(附自动化检测Python脚本)
  • 2026五月天津奢包回收行情,打卡多家实体门店 - 奢侈品回收测评
  • 米尔i.MX 93核心板实战解析:异构计算与边缘AI在工业物联网的应用
  • PaperDebugger:连接论文理论与代码实践的算法调试工具
  • AI评估框架实战:从YiVal看大模型应用的质量保障体系
  • 2026上海杨浦区黄金回收指南|就近门店+上门服务随心选+实时回收价格对比 - 速递信息
  • 一条命令,搭起你的 Web 应用,又一个神级 Skill。。。
  • 2026年全国注会培训机构哪家好 聚焦一对一私教 专注高效通关 - 深度智识库
  • 讲讲对高并发的理解
  • 如何高效下载B站视频?BilibiliDown跨平台下载工具完全指南
  • PotPlayer字幕翻译插件完整教程:免费实现外语视频实时双语字幕
  • 基于LangChain与Google Ads API构建AI自动化广告优化系统
  • postgresql和MYSQL的对比
  • 基于ESP8266与Adafruit IO的低功耗物联网门磁告警系统实战
  • c++如何解析包含十六进制转义字符的复杂格式配置文件文本【进阶】
  • 电脑网络恢复
  • 回收沃尔玛购物卡的最佳平台推荐! - 团团收购物卡回收
  • 5步终极指南:用OpenCore Legacy Patcher让老旧Mac焕发新生