题目: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筛相关推荐

  1. [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 ...

  2. 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)= ...

  3. 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∑n​i=1∑n​f(gcd(i,j))k=∑d=1n ...

  4. 「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 ...

  5. LOJ #570. 「LibreOJ Round #11」Misaka Network 与任务

    观察发现,肯定是1个或两个最优. #include<bits/stdc++.h> #define ll long long #define ull unsigned ll #define ...

  6. 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 ...

  7. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)

    description 研究者们想要测试 Misaka Network,于是他们把 Misaka Network 中的所有妹妹们召集到了一起. 现在妹妹们排成了 N行 M 列,有的位置没有人.现在研究 ...

  8. 「LibreOJ Round #11」Misaka Network 与测试【二分图最大匹配+读入坑点】

    题目链接 LOJ 569 这道题的坑点或许不在于想到这个算法,而是在于这里有读入的坑点,会使得你在本地编译正确而在题目判断的时候得到WA. 因为,题目的操作系统是win的,而我自己的编译器是Mac O ...

  9. 「LibreOJ Round #11」Misaka Network 与任务

    题解: 显然只需要知道某几位上是111的有多少个就可以容斥了,这个用枚举子集可以做到O(3n)" role="presentation" style="posi ...

最新文章

  1. 清华微电子副所长尹首一:中国AI芯片的技术路线最全面
  2. 1.2.2 Logistic回归和梯度下降计算的数学流程
  3. oracle+资料类型不一致吗,oracle数据库中,字段类型不一致,导致查询慢
  4. 在线base64加密解密工具
  5. Linux之MariaDB
  6. Eclipse查看java源代码
  7. cubic 插值和 bicubic,pytorch, opencv和matlab的实现差异
  8. Spire.Office for Java 7.5.4
  9. PIX飞控中POS数据读取方法(实用工具)
  10. java swing是什么_JAVA初学者:swing是什么?
  11. 扛过字节Java研发岗4轮面试,收到sp offer(月薪35k)!揭秘字节面试流程及考题(附带答案)
  12. 科沃斯擦窗机器人向上走不动_ECOVACS 科沃斯 W830 解决高空擦玻璃的难处
  13. 【2018年广东工业大学文远知行杯新生程序设计竞赛】灰暗而空虚的景色β
  14. (转载)为什么海藻会背叛,毛豆豆不会
  15. 更新-LabVIEW固高函数库源码文档调试软件-2019年4月14日
  16. HDU 1864 最大报销额 dp
  17. python 傅立叶函数_python-如何从图像中去除高频内容以进行傅立叶逆变换
  18. 解决国内访问s3.amazonaws.com下载文件非常缓慢的问题
  19. irfanview没法设置文件关联怎么办,jpg格式关联到IrfanView操作步骤
  20. 学校计算机室应该配备哪种灭火器,学校教学楼应配备的灭火器型号是什么呢

热门文章

  1. FPGA复位的正确打开方式
  2. 【A - TT 的魔法猫】Floyd思想
  3. English--面试英语自我介绍范文
  4. 《中学语文》期刊简介及投稿要求
  5. QT之Qml使用QSystemTrayIcon实现系统托盘
  6. 数字电视之TS流解析
  7. Python实现小黄鸭字符动画
  8. 分析Java的内存溢出问题(OutofMemory)
  9. @noescape @escaping @autoclosure
  10. 题解 | 2023河南萌新联赛第(四)场:河南大学 解题报告