题目

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

考虑到\(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;
}

最新文章

  1. IFC是什么
  2. The connection to adb is down, and a severe error has occured.问题解决方法小结
  3. 导出 XE6 预设 Android Style (*.style) 档案
  4. 参数化命令相关知识点(防止Sql注入)
  5. Java Hour 61 基础概念拾遗
  6. 8个WEB前端创意HTML5动画应用精选
  7. 修改首页的main里面的内容
  8. PIC16F877A最小功能板 - 原理图系列
  9. WPF实现无窗体鼠标跟随
  10. sql server删除主键约束所想到的
  11. 微信小程序开发•模块化
  12. JavaScript 笔记(一)
  13. 如何删除pagefile.sys
  14. selenium+Page Objects(第一话)
  15. 常用到的photoshop实用设计功能都在这了!
  16. Supervisor4.0和python2.7的crit问题,导致python进程阻塞
  17. css的背景图片background
  18. perf 函数调用性能(函数流程图)
  19. [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!
  20. css代码添加背景图片常用代码

热门文章

  1. Delphi ADOQuery的属性 locktype、CursorLocation 、Filter、CursorType、CancelBatch 和 UpdateBatch
  2. 使用Socket.IO做单页SPA应用更新
  3. go语言type使用小技巧
  4. 20140312 Excel表格画折现图次坐标轴
  5. 《转》python学习基础
  6. 牛客CSP-S提高组赛前集训营1
  7. iptables 命令大全
  8. [JZOJ3320] 【BOI2013】文本编辑器
  9. PHP curl采集
  10. windows下,根据端口号杀死进程