题目

不是很明白为什么要叫做模板

考虑到\(a_i\)能对\(b_j\)产生贡献,当且仅当\(a_i=\prod p_k^{a_k},b_j=\prod p_k^{b_k},\forall k \ a_k\leq b_k\),于是我们把每一个质数次幂看成一维,相当于对\(a\)数组求一个高维前缀和

于是我们枚举每一个质数次幂,利用高维前缀和的方式来做就行了,复杂度同埃筛\(\operatorname{O(n\ log\ log\ n)}\)

#include<bits/stdc++.h>
#define re register
#define uint unsigned int
const int maxn=2e7+5;
uint seed,a[maxn],ans;
int n,f[maxn],p[maxn>>2];
inline uint getnxt(){
seed^=seed<<13;seed^=seed>>17;
seed^=seed<<5;return seed;
}
int main() {
scanf("%d%u",&n,&seed);
for(re int i=2;i<=n;i++) {
if(!f[i]) p[++p[0]]=i;
for(re int j=1;j<=p[0]&&p[j]*i<=n;j++) {
f[p[j]*i]=1;
if(i%p[j]==0) break;
}
}
for(re int i=1;i<=n;i++) a[i]=getnxt();
for(re int i=1;i<=p[0];i++)
for(re int j=2;j*p[i]<=n;j++)
a[p[i]*j]+=a[j];
for(re int i=2;i<=n;i++) a[i]+=a[1],ans^=a[i];
printf("%u",ans^a[1]);
return 0;
}

LGP5495 Dirichlet 前缀和的更多相关文章

  1. [SOJ #112]Dirichlet 前缀和

    题目大意:给定一个长度为$n$的序列$a_n$,需要求出一个序列$b_n$,满足:$$b_k=\sum\limits_{i|k}a_i$$$n\leqslant10^7$ 题解:$\mathrm{Di ...

  2. Dirichlet 前缀和的几种版本

    [模板]Dirichlet 前缀和 求 \[B[i] = \sum_{d|i} A[d] \] $ n \le 2\times 10^{7} $ 看代码: for( int i = 1 ; i < ...

  3. luoguP5495:Dirichlet 前缀和

    题意:给定数组a[]的生成方式,然后b[i]=∑a[j]  ,(i%j==0),求所有b[i]的异或和.所有运算%2^32; 思路:高维前缀和的思想,先筛出所有素数,然后把每个素数当成一维,那么分开考 ...

  4. 【学习笔记】Dirichlet前缀和

    题目戳我 \(\text{Solution:}\) 观察到一个\(a_i\)若对\(a_j\)有贡献,则必须\(i\)的所有质因子幂次小于等于\(j\)的质因子幂次. 于是,我们可以枚举质数的倍数并累 ...

  5. CSP 2019 退役记

    声明:博主不会时空穿越,也没有造成恐慌,不应禁赛三年 Day0 上午:打板子 Polya定理; exkmp; exbsgs; 乘法逆元; 矩阵快速幂; 扫描线; ST表; excrt; Dirichl ...

  6. 【题解】「MCOI-02」Convex Hull 凸包

    题目戳我 \(\text{Solution:}\) \[\sum_{i=1}^n \sum_{j=1}^n \rho(i)\rho(j)\rho(\gcd(i,j)) \] \[=\sum_{d=1} ...

  7. BZOJ 1101 [POI2007]Zap ——Dirichlet积

    [题目分析] Dirichlet积+莫比乌斯函数. 对于莫比乌斯函数直接筛出处理前缀和. 对于后面向下取整的部分,可以分成sqrt(n)+sqrt(m)部分分别计算 学习了一下线性筛法. 积性函数可以 ...

  8. [基本操作] Mobius 反演, Dirichlet 卷积和杜教筛

    Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $ ...

  9. Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和

    下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ...

随机推荐

  1. element中的tree组件实现菜单分配

    返回的菜单数据 tree组件的使用 <el-tree ref="menuList" // :data="menuList" // 展示数据 :props= ...

  2. Jmeter-【beanshell处理器】-随机获取手机号

    一.通过操作变量 二.引用外部Java文件 三.引用外部class文件

  3. CF838C(博弈+FWT子集卷积+多项式ln、exp)

    传送门: http://codeforces.com/problemset/problem/838/C 题解: 如果一个字符串的排列数是偶数,则先手必胜,因为如果下一层有后手必赢态,直接转移过去,不然 ...

  4. thinkphp session驱动

    默认的session驱动的命名空间是Think\Session\Driver,并实现下面的驱动接口:大理石构件哪家好 方法说明 接口方法 打开Session open($savePath, $sess ...

  5. Android下载Android源码

    使用Git,命令是:git clone http://android.googlesource.com/platform/frameworks/base.git

  6. 反演+分块套分块——bzoj2154

    题解都在论文里了 #include<bits/stdc++.h> using namespace std; #define maxn 10000005 #define ll long lo ...

  7. IDEA下spring boot项目打包war包部署外部tomcat问题

    第一步,修改配置pom.xml文件 <packaging>war</packaging> <dependency> <groupId>org.sprin ...

  8. Delphi做异型窗体PNG透明

    {*******************************************************}{ }{ 异形窗口 }{ }{ 2009.12.4 王 锐 }{ }{******** ...

  9. 知识整理:字符串hash

    字符串hash唯一用途是快速判断两字符串是否相等,但存在极小概率假阳性(本来不相等,但算法返回相等). 根本思想是把一个字符串转换为一个整数,要求相同的字符串,对应的这个整数相同,不同的字符串,对应的 ...

  10. POJ3241 最小曼哈顿距离生成树 - 真有趣哇

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面.  给你n个坐标, ...