LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛
题目:https://loj.ac/problem/572
莫比乌斯反演得 \( ans=\sum\limits_{D=1}^{n}\left\lfloor\frac{n}{D}\right\rfloor^2\sum\limits_{d|D}f(d)^k\mu (\frac{D}{d}) \)
计算 \( S(n)=\sum\limits_{i=1}^{n}f×\mu \)
像杜教筛(https://blog.csdn.net/a1799342217/article/details/80328510)一样写一写式子,因为有 \( \mu \) 所以把补的 g 函数设为 1 函数。
\( \sum\limits_{i=1}^{n}f×\mu×1(i) \)
\( = \sum\limits_{i=1}^{n}\sum\limits_{d|D}1(d)*(f×\mu)(\frac{i}{d}) \)
\( = \sum\limits_{d=1}^{n}1(d)\sum\limits_{i=1}^{\frac{n}{d}}f×\mu (i) \)
\( = \sum\limits_{d=1}^{n}1(d)S(\frac{n}{d}) \)
用这个表示 \( S(n) \),则
\( S(n)=\sum\limits_{d=1}^{n}1(d)S(\frac{n}{d}) - \sum\limits_{d=2}^{n}1(d)S(\frac{n}{d}) \)
\( S(n)=\sum\limits_{i=1}^{n}f×\mu×1(i)- \sum\limits_{d=2}^{n}1(d)S(\frac{n}{d}) \)
\( S(n)=\sum\limits_{i=1}^{n}f(i)- \sum\limits_{d=2}^{n}1(d)S(\frac{n}{d}) \)
用和 UOJ 188 一样的方法求 f 的前缀和即可。
S 的可能角标一定是某个 \( \left\lfloor\frac{n}{i}\right\rfloor \) 。所以 S 可以预处理。预处理的时候别忘了记忆化。
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define int unsigned int #define ll long long using namespace std; int pw(int x,int k) {int ret=1;while(k){if(k&1)ret*=x;x*=x;k>>=1;}return ret;} const int N=9e4+5; int n,k,base,s[N],g[N],w[N],m,p[N],pk[N],cnt,ans[N]; bool vis[N];ll p2[N]; int Id(int x){return x<=base?m-x+1:n/x;} int S(int n) {int k=Id(n);if(ans[k]!=-1)return ans[k];int ret=s[k]+g[k];for(int i=2,j;i<=n;i=n/j+1){j=n/i;ret-=(n/j-i+1)*S(j);}return ans[k]=ret; } void init(int n) {base=sqrt(n);for(int i=2;i<=base;i++){if(!vis[i])p[++cnt]=i,p2[cnt]=(ll)i*i,pk[cnt]=pw(i,k);for(int j=1,d;j<=cnt&&(d=i*p[j])<=base;j++){vis[d]=1;if(i%p[j]==0)break;}}for(int i=1,j;i<=n;i=n/j+1)w[++m]=j=n/i;for(int i=1;i<=m;i++)g[i]=w[i]-1;for(int j=1,tp=0;j<=cnt;j++,tp++)for(int i=1;i<=m&&p2[j]<=w[i];i++)g[i]-=g[Id(w[i]/p[j])]-tp;int p0=1;for(int j=cnt;j;j--){while(p0<=m&&p2[j]<=w[p0])p0++;for(int i=p0-1;i;i--){int k=Id(w[i]/p[j]);s[i]+=s[k]+pk[j]*(g[k]-(j-1));}}memset(ans,-1,sizeof ans);S(n); } signed main() {scanf("%u%u",&n,&k);init(n);int prn=0;for(int i=1,j,lst=0,nw;i<=n;i=n/j+1){j=n/i;nw=ans[Id(n/j)];prn+=j*j*(nw-lst);lst=nw;}printf("%u\n",prn);return 0; }
转载于:https://www.cnblogs.com/Narh/p/10284725.html
LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛相关推荐
- [LOJ]#572. 「LibreOJ Round #11」Misaka Network 与求和 min_25筛+杜教筛
Solution 推一下式子,容易得到一个线性做法:∑d=1nfk(d)((2∑i=1⌊ni⌋φ(i))−1)\sum_{d=1}^nf^k(d)((2\sum_{i=1}^{\lfloor{n\ov ...
- Loj#572. 「LibreOJ Round #11」Misaka Network 与求和
题目 有生之年我竟然能\(A\) 这个题求的是这个 \[\sum_{i=1}^n\sum_{j=1}^nf(gcd(i,j))^k\] \(f(i)\)定义为\(i\)的次大质因子,其中\(f(p)= ...
- Loj #572. 「LibreOJ Round #11」Misaka Network 与求和(莫比乌斯反演 + 杜教筛 + min_25筛(递推版))
直接反演一下:∑i=1n∑i=1nf(gcd(i,j))k\sum_{i = 1}^n\sum_{i = 1}^nf(gcd(i,j))^ki=1∑ni=1∑nf(gcd(i,j))k=∑d=1n ...
- 「LibreOJ Round #11」Misaka Network 与求和(杜教筛 + Min_25)
#572. 「LibreOJ Round #11」Misaka Network 与求和 推式子 ∑i=1n∑j=1nf(gcd(i,j))k∑d=1nf(d)k∑i=1nd∑j=1nd[gcd(i,j ...
- LOJ #570. 「LibreOJ Round #11」Misaka Network 与任务
观察发现,肯定是1个或两个最优. #include<bits/stdc++.h> #define ll long long #define ull unsigned ll #define ...
- LOJ572. 「LibreOJ Round #11」Misaka Network 与求和 [莫比乌斯反演,杜教筛,min_25筛]
传送门 思路 (以下令\(F(n)=f(n)^k\)) 首先肯定要莫比乌斯反演,那么可以推出: \[ ans=\sum_{T=1}^n \lfloor\frac n T\rfloor^2\sum_{d ...
- 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)
description 研究者们想要测试 Misaka Network,于是他们把 Misaka Network 中的所有妹妹们召集到了一起. 现在妹妹们排成了 N行 M 列,有的位置没有人.现在研究 ...
- 「LibreOJ Round #11」Misaka Network 与测试【二分图最大匹配+读入坑点】
题目链接 LOJ 569 这道题的坑点或许不在于想到这个算法,而是在于这里有读入的坑点,会使得你在本地编译正确而在题目判断的时候得到WA. 因为,题目的操作系统是win的,而我自己的编译器是Mac O ...
- 「LibreOJ Round #11」Misaka Network 与任务
题解: 显然只需要知道某几位上是111的有多少个就可以容斥了,这个用枚举子集可以做到O(3n)" role="presentation" style="posi ...
最新文章
- 清华微电子副所长尹首一:中国AI芯片的技术路线最全面
- 1.2.2 Logistic回归和梯度下降计算的数学流程
- oracle+资料类型不一致吗,oracle数据库中,字段类型不一致,导致查询慢
- 在线base64加密解密工具
- Linux之MariaDB
- Eclipse查看java源代码
- cubic 插值和 bicubic,pytorch, opencv和matlab的实现差异
- Spire.Office for Java 7.5.4
- PIX飞控中POS数据读取方法(实用工具)
- java swing是什么_JAVA初学者:swing是什么?
- 扛过字节Java研发岗4轮面试,收到sp offer(月薪35k)!揭秘字节面试流程及考题(附带答案)
- 科沃斯擦窗机器人向上走不动_ECOVACS 科沃斯 W830 解决高空擦玻璃的难处
- 【2018年广东工业大学文远知行杯新生程序设计竞赛】灰暗而空虚的景色β
- (转载)为什么海藻会背叛,毛豆豆不会
- 更新-LabVIEW固高函数库源码文档调试软件-2019年4月14日
- HDU 1864 最大报销额 dp
- python 傅立叶函数_python-如何从图像中去除高频内容以进行傅立叶逆变换
- 解决国内访问s3.amazonaws.com下载文件非常缓慢的问题
- irfanview没法设置文件关联怎么办,jpg格式关联到IrfanView操作步骤
- 学校计算机室应该配备哪种灭火器,学校教学楼应配备的灭火器型号是什么呢