LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛
莫比乌斯反演得 \( 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=;while(k){if(k&)ret*=x;x*=x;k>>=;}return ret;}
const int N=9e4+;
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+:n/x;}
int S(int n)
{
int k=Id(n);if(ans[k]!=-)return ans[k];
int ret=s[k]+g[k];
for(int i=,j;i<=n;i=n/j+)
{j=n/i;ret-=(n/j-i+)*S(j);}
return ans[k]=ret;
}
void init(int n)
{
base=sqrt(n);
for(int i=;i<=base;i++)
{
if(!vis[i])p[++cnt]=i,p2[cnt]=(ll)i*i,pk[cnt]=pw(i,k);
for(int j=,d;j<=cnt&&(d=i*p[j])<=base;j++)
{vis[d]=;if(i%p[j]==)break;}
}
for(int i=,j;i<=n;i=n/j+)w[++m]=j=n/i; for(int i=;i<=m;i++)g[i]=w[i]-;
for(int j=,tp=;j<=cnt;j++,tp++)
for(int i=;i<=m&&p2[j]<=w[i];i++)
g[i]-=g[Id(w[i]/p[j])]-tp; int p0=;
for(int j=cnt;j;j--)
{
while(p0<=m&&p2[j]<=w[p0])p0++;
for(int i=p0-;i;i--)
{
int k=Id(w[i]/p[j]);
s[i]+=s[k]+pk[j]*(g[k]-(j-));
}
}
memset(ans,-,sizeof ans);
S(n);
}
signed main()
{
scanf("%u%u",&n,&k);init(n);int prn=;
for(int i=,j,lst=,nw;i<=n;i=n/j+)
{
j=n/i;nw=ans[Id(n/j)];
prn+=j*j*(nw-lst);lst=nw;
}
printf("%u\n",prn);
return ;
}
LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛的更多相关文章
- LOJ# 572. 「LibreOJ Round #11」Misaka Network 与求和(min25筛,杜教筛,莫比乌斯反演)
题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质 ...
- 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)= ...
- 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 ...
- [LOJ#530]「LibreOJ β Round #5」最小倍数
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...
- [LOJ#516]「LibreOJ β Round #2」DP 一般看规律
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...
- [LOJ#531]「LibreOJ β Round #5」游戏
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...
- [LOJ#515]「LibreOJ β Round #2」贪心只能过样例
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...
- [LOJ#525]「LibreOJ β Round #4」多项式
[LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) ...
- [LOJ#526]「LibreOJ β Round #4」子集
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...
随机推荐
- PHP header函数设置http报文头示例详解
//定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/at ...
- jsp jsp的基本语法
jsp模板元素 jsp页面中的HTML 内容称为JSP模板元素 jsp模板元素定义了网页的基本骨架,即定义了页面结构和外观 jsp表达式 jsp脚本表达式用于将程序数据输出到客户端 语法& ...
- install rabbitvcs in ubuntu16.04
reference: https://github.com/rabbitvcs/rabbitvcs how to install : sudo apt-get install rabbitvcs-cl ...
- Unity 3D连接MySQl数据库
对数据库各种操作已经熟练,但是一遇到数据库问题还是头大,最近使用unity3d开发一款小型网络社区,遇到了各种问题分享一下以供大家参考: 以前使用的是SQL,第一次用MySQL,在网上随便下了一个,安 ...
- java request获取各种数据
我们经常需要在servlet(j2ee13.jar javax.servlet.http.HttpServletRequest)中,获取请求request的各种数据信息. 请求的URL: htt ...
- 玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 扩展HMC ...
- windows与Linux实现文件传输Winscp工具的使用
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件..winscp也可以链接其他系统,比如linux系统 ...
- web.xml的分析
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" ...
- oracle 统计sql
最近在研究项目时发现如下sql, select 3 agentOfGCount, 0 workingCount, 0 restingCount, 0 busyingCount, 0 connectin ...
- php flock 文件锁
于php中文件锁函数flock函数用法简介,希望通过本文的介绍大家对于Linux方面能够更加的了解 flock (PHP 4, PHP 5) flock — 轻便的咨询文件锁定 说明 bool flo ...