题目

不难发现我们要求的东西是$\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 梦中的数论的更多相关文章

  1. 【LOJ#6682】梦中的数论(min_25筛)

    [LOJ#6682]梦中的数论(min_25筛) 题面 LOJ 题解 注意题意是\(j|i\)并且\((j+k)|i\), 不难发现\(j\)和\((j+k)\)可以任意取\(i\)的任意因数,且\( ...

  2. BZOJ 3620: 似乎在梦中见过的样子

    似乎在梦中见过的样子.... 一道水题调了这么久,还半天想不出来怎么 T 的...佩服自己(果然蒟蒻) 这题想想 KMP 但是半天没思路瞟了一眼题解发现暴力枚举起始点,然后 KMP 如图: O( n2 ...

  3. 织梦中在线显示pdf文件的方法

    如何在织梦中添加pdf文件并显示呢?下面这个教程将带领大家来操作.(注:手机版无法查看) 第一步:在系统-系统基本参数-附件设置中添加pdf格式 并且将大小调大 第二步:在核心-内容模型-普通文章中添 ...

  4. 【BZOJ 3620】 3620: 似乎在梦中见过的样子 (KMP)

    3620: 似乎在梦中见过的样子 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 755  Solved: 445 Description “Madok ...

  5. 【BZOJ3620】似乎在梦中见过的样子 KMP

    [BZOJ3620]似乎在梦中见过的样子 Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个 ...

  6. BZOJ_3620_似乎在梦中见过的样子_KMP

    BZOJ_3620_似乎在梦中见过的样子_KMP Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka ...

  7. ACM_梦中的函数

    梦中的函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 寒假那段时间,每天刷题的小G连做梦都是代码,于是有了这道题. 给定一个 ...

  8. 【kmp】似乎在梦中见过的样子

    参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...

  9. 似乎在梦中见过的样子 (KMP)

    # 10047. 「一本通 2.2 练习 3」似乎在梦中见过的样子 [题目描述] 「Madoka,不要相信 QB!」伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Mo ...

随机推荐

  1. VUE小案例--跑马灯效果

    自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <me ...

  2. 广义Fibonacci数列找循环节 学习笔记

    遇到了2019ICPC南昌赛区的网络赛的一道题,fn=3*fn-1+2*fn-2,有多次询问求fn.总结起来其实就是在模P意义下,O(1)回答广义斐波那契额数列的第n项,可以说是一道模板题了. 这道题 ...

  3. 解决 docker run 报错 oci runtime error

    在部署新服务器运行docker镜像的时候遇到了报错,记录下解决方法. docker 启动容器报错:Error response from daemon: oci runtime error: cont ...

  4. java 计算时间差

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse(&quo ...

  5. vue-ivew input 框 回车搜索功能

    1. 添加事件 <FormItem prop="> <Input type="text" v-model="formInline.produc ...

  6. python 中的eval()函数,称为评估函数

    目的:使用BDD的时候,feture中传过来的预期结果是列表字符串:assert_list  =  "[1,2,3]",我想要的是[1,2,3] 处理方法:使用eval()评估函数 ...

  7. Python3.5-20190501-廖老师的

    python是一门解释型\脚本语言(和js特别像,如果同时学习js和python完全搅浑了.) 在运行py时候是一句一句翻译成cpu识别的机器码,所以速度比较慢.而C程序是运行前直接编译成CPU能执行 ...

  8. Java JDK1.8新特性之四大函数式接口

    JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...

  9. 02.自定义banner、全局配置文件、@Value获取自定义配置、@ConfigurationProperties、profiles配置

    自定义banner src/main/resource 下新建 banner.txt,字符复制到banner.txt 中 生成字符网站推荐: http://patorjk.com/software/t ...

  10. nyoj 253:LK的旅行 【旋转卡壳入门】

    题目链接 求平面最大点对. 找凸包 -> 根据凸包运用旋转卡壳算法求最大点对(套用kuang巨模板) 关于旋转卡壳算法 #include<bits/stdc++.h> using n ...