LOJ6682 梦中的数论
不难发现我们要求的东西是$\sum_^n\binom{\sigma(i)}{2}=\sum_^n\frac{\sigma(i)(\sigma(i)-1)}{2}=\frac{\sum_n\sigma2(i)-\sum_^n\sigma(i)}{2}$
设$f(i)=\sigma2(i)$,不难发现这还是一个积性函数,显然的$f(pc)=(c+1)^2$,于是直接大力min_25即可,所以其实就是来复习一下板子
那个$\sum_^n\sigma(i)$显然可以直接整除分块(但是我太傻了,只会暴力min_25
代码
#include<bits/stdc++.h>
#define re register
#define LL long long
const int mod=998244353;
inline int dqm(int x) {return x<0?x+mod:x;}
inline int qm(int x) {return x>=mod?x-mod:x;}
LL n,w[200005];int ans;
int p[200005],is[200005],id1[200005],id2[200005],g[200005],Sqr,m;
int S1(LL x,int y) {
if(x<=1||p[y]>x) return 0;
int nw=(x<=Sqr?g[id1[x]]:g[id2[n/x]]);nw=dqm(nw-y+1);
nw=4ll*nw%mod;
for(re int i=y;i<=p[0]&&1ll*p[i]*p[i]<=x;++i) {
LL t=p[i];
for(re int e=1;t<=x;++e,t=1ll*t*p[i])
nw=qm(nw+1ll*(e+1)*(e+1)%mod*(S1(x/t,i+1)+(e>1))%mod);
}
return nw;
}
int main() {
scanf("%lld",&n);Sqr=sqrt(n)+1;
for(re int i=2;i<=Sqr;i++) {
if(!is[i]) p[++p[0]]=i;
for(re int j=1;j<=p[0]&&p[j]*i<=Sqr;++j) {
is[p[j]*i]=1;if(i%p[j]==0) break;
}
}
for(re LL l=1,r;l<=n;l=r+1) {
r=n/(n/l);w[++m]=n/l;
if(w[m]<=Sqr) id1[w[m]]=m;
else id2[n/w[m]]=m;
g[m]=(w[m]-1)%mod;
ans=qm(ans+1ll*(r-l+1)%mod*(n/l)%mod);
}
for(re int j=1;j<=p[0];++j)
for(re int i=1;i<=m&&p[j]<=w[i]/p[j];++i) {
int k=(w[i]/p[j]<=Sqr?id1[w[i]/p[j]]:id2[n/(w[i]/p[j])]);
g[i]=dqm(g[i]-g[k]);g[i]=qm(g[i]+j-1);
}
printf("%d\n",1ll*dqm(S1(n,1)-ans+1)*((mod+1)/2)%mod);
return 0;
}
LOJ6682 梦中的数论的更多相关文章
- 【LOJ#6682】梦中的数论(min_25筛)
[LOJ#6682]梦中的数论(min_25筛) 题面 LOJ 题解 注意题意是\(j|i\)并且\((j+k)|i\), 不难发现\(j\)和\((j+k)\)可以任意取\(i\)的任意因数,且\( ...
- BZOJ 3620: 似乎在梦中见过的样子
似乎在梦中见过的样子.... 一道水题调了这么久,还半天想不出来怎么 T 的...佩服自己(果然蒟蒻) 这题想想 KMP 但是半天没思路瞟了一眼题解发现暴力枚举起始点,然后 KMP 如图: O( n2 ...
- 织梦中在线显示pdf文件的方法
如何在织梦中添加pdf文件并显示呢?下面这个教程将带领大家来操作.(注:手机版无法查看) 第一步:在系统-系统基本参数-附件设置中添加pdf格式 并且将大小调大 第二步:在核心-内容模型-普通文章中添 ...
- 【BZOJ 3620】 3620: 似乎在梦中见过的样子 (KMP)
3620: 似乎在梦中见过的样子 Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 755 Solved: 445 Description “Madok ...
- 【BZOJ3620】似乎在梦中见过的样子 KMP
[BZOJ3620]似乎在梦中见过的样子 Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个 ...
- BZOJ_3620_似乎在梦中见过的样子_KMP
BZOJ_3620_似乎在梦中见过的样子_KMP Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka ...
- ACM_梦中的函数
梦中的函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 寒假那段时间,每天刷题的小G连做梦都是代码,于是有了这道题. 给定一个 ...
- 【kmp】似乎在梦中见过的样子
参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...
- 似乎在梦中见过的样子 (KMP)
# 10047. 「一本通 2.2 练习 3」似乎在梦中见过的样子 [题目描述] 「Madoka,不要相信 QB!」伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Mo ...
随机推荐
- VUE小案例--跑马灯效果
自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <me ...
- 广义Fibonacci数列找循环节 学习笔记
遇到了2019ICPC南昌赛区的网络赛的一道题,fn=3*fn-1+2*fn-2,有多次询问求fn.总结起来其实就是在模P意义下,O(1)回答广义斐波那契额数列的第n项,可以说是一道模板题了. 这道题 ...
- 解决 docker run 报错 oci runtime error
在部署新服务器运行docker镜像的时候遇到了报错,记录下解决方法. docker 启动容器报错:Error response from daemon: oci runtime error: cont ...
- java 计算时间差
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse(&quo ...
- vue-ivew input 框 回车搜索功能
1. 添加事件 <FormItem prop="> <Input type="text" v-model="formInline.produc ...
- python 中的eval()函数,称为评估函数
目的:使用BDD的时候,feture中传过来的预期结果是列表字符串:assert_list = "[1,2,3]",我想要的是[1,2,3] 处理方法:使用eval()评估函数 ...
- Python3.5-20190501-廖老师的
python是一门解释型\脚本语言(和js特别像,如果同时学习js和python完全搅浑了.) 在运行py时候是一句一句翻译成cpu识别的机器码,所以速度比较慢.而C程序是运行前直接编译成CPU能执行 ...
- Java JDK1.8新特性之四大函数式接口
JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...
- 02.自定义banner、全局配置文件、@Value获取自定义配置、@ConfigurationProperties、profiles配置
自定义banner src/main/resource 下新建 banner.txt,字符复制到banner.txt 中 生成字符网站推荐: http://patorjk.com/software/t ...
- nyoj 253:LK的旅行 【旋转卡壳入门】
题目链接 求平面最大点对. 找凸包 -> 根据凸包运用旋转卡壳算法求最大点对(套用kuang巨模板) 关于旋转卡壳算法 #include<bits/stdc++.h> using n ...