P5325 【模板】Min_25筛
题意:定义积性函数f(x)f(x)f(x),且f(p^k)=p^k*(p^k−1) (p是一个质数),求f(1)+f(2)+...f(n);
思路:板子题。重新打了一份装起来。
/*
定义积性函数f(x)f(x)f(x),且f(p^k)=p^k*(p^k−1)(p是一个质数),求f(1)+f(2)+...f(n);
n<=1e10; 2s;
*/
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
const int Mod=,inv2=,inv3=;
struct min25 //很多部分需要long,不要搞错了
{
ll p[maxn],sp1[maxn],sp2[maxn],N;
ll g1[maxn],g2[maxn];int Sqr,ind1[maxn],ind2[maxn],num,tot;
ll w[maxn]; bool vis[maxn];
int MOD(int x){ if(x>=Mod) x-=Mod;return x; }
void prime() //得到素数,sp1,sp2
{
rep(i,,Sqr){
if(!vis[i]){
p[++num]=i;
sp1[num]=MOD(sp1[num-]+i);
sp2[num]=(sp2[num-]+1LL*i*i)%Mod;
}
for(int j=;j<=num&&p[j]*i<=Sqr;j++){
vis[p[j]*i]=;
if(i%p[j]==) break;
}
}
}
void getind()
{
for(ll i=;i<=N;i++){
ll now=N/i,j=N/now,t=now%Mod;
w[++tot]=now;
g1[tot]=MOD(t*(t+)/%Mod+Mod-); //因为我们全部都不考虑1。
g2[tot]=MOD(t*(t+)/%Mod*(t*+)%Mod*inv3%Mod+Mod-); //*2应该不需要%Mod
if(now<=Sqr) ind1[now]=tot;
else ind2[j]=tot;
i=j;
}
}
void getg1g2()
{
rep(i,,num){ //注意w里面的东西是递减的,所以可以滚动
for(int j=;j<=tot&&p[i]<=w[j]/p[i];j++){
ll now=w[j]/p[i];
int k=now<=Sqr?ind1[now]:ind2[N/now];
g1[j]=MOD(g1[j]-1LL*p[i]*(g1[k]-sp1[i-]+Mod)%Mod+Mod);
g2[j]=MOD(g2[j]-1LL*p[i]*p[i]%Mod*(g2[k]-sp2[i-]+Mod)%Mod+Mod);
}
}
}
int S(ll x,int y)
{
if(x<=p[y]) return ;
ll k=x<=Sqr?ind1[x]:ind2[N/x];
ll ans=(g2[k]-g1[k]+Mod-(sp2[y]-sp1[y])+Mod)%Mod;
for(int i=y+;i<=num&&p[i]*p[i]<=x;i++) {
ll pe=p[i];
for(int e=;pe<=x;e++,pe=pe*p[i]){
ll xx=pe%Mod;
ans=(ans+xx*(xx-)%Mod*(S(x/pe,i)+(e!=)))%Mod;
//这里的f(x)对应xx*(xx-1),其他函数把这里换了就行。
}
}
return ans%Mod;
}
void solve(ll n)
{
N=n; Sqr=sqrt(N);
prime(); //筛根号部分素数。
getind(); //得到编号,以及一次前缀和,二次前缀和。
getg1g2(); //得到素数1次前缀和,二次前缀和。
printf("%d\n",MOD(S(N,)+));
}
}T;
int main()
{
ll N;
scanf("%lld",&N);
T.solve(N);
return ;
}
P5325 【模板】Min_25筛的更多相关文章
- Solution -「洛谷 P5325」Min_25 筛
\(\mathcal{Description}\) Link. 对于积性函数 \(f(x)\),有 \(f(p^k)=p^k(p^k-1)~(p\in\mathbb P,k\in\mathbb ...
- [模板]Min_25筛
用途 快速($O(\frac{n^{3/4}}{logn})$)地计算一些函数f的前缀和,以及(作为中间结果的)只计算质数的前缀和 一般要求f(p)是积性函数,$f(p)$是多项式的形式,且$f(p^ ...
- LG5325 【模板】Min_25筛
P5325 [模板]Min_25筛 题目背景 模板题,无背景. 题目描述 定义积性函数$f(x)$,且$f(p^k)=p^k(p^k-1)$($p$是一个质数),求 $$\sum_{i=1}^n f( ...
- P4213 【模板】杜教筛(Sum) min_25筛
\(\color{#0066ff}{ 题目描述 }\) 给定一个正整数\(N(N\le2^{31}-1)\) 求 \(ans_1=\sum_{i=1}^n\varphi(i)\) \(ans_2=\s ...
- 模板 - 数学 - 数论 - Min_25筛
终于知道发明者的正确的名字了,是Min_25,这个筛法速度为亚线性的\(O(\frac{n^{\frac{3}{4}}}{\log x})\),用于求解具有下面性质的积性函数的前缀和: 在 \(p\) ...
- luogu P5325 Min_25筛
LINK:Min_25筛 新版感觉有点鬼畜 而且旧版的也够用了至少. 这个并不算很简单也不算很困难的知识点 学起来还是很麻烦的. (误入了很多dalao的blog 说的云里雾里的 甚是懵逼 这里推荐几 ...
- Min_25 筛 学习笔记
原文链接https://www.cnblogs.com/zhouzhendong/p/Min-25.html 前置技能 埃氏筛法 整除分块(这里有提到) 本文概要 1. 问题模型 2. Min_25 ...
- 【SPOJ】DIVCNTK min_25筛
题目大意 给你 \(n,k\),求 \[ S_k(n)=\sum_{i=1}^n\sigma_0(i^k) \] 对 \(2^{64}\) 取模. 题解 一个min_25筛模板题. 令 \(f(n)= ...
- 关于min_25筛的一些理解
关于min_25筛的一些理解 如果想看如何筛个普通积性函数啥的,就别往下看了,下面没有的(QwQ). 下文中,所有的\(p\)都代表质数,\(P\)代表质数集合. 注意下文中定义的最小/最大质因子都是 ...
- LOJ6625 时间复杂度(min_25筛)
本人在LOJ的第三题(前两题太水不好意思说了QwQ),欢迎大家踩std. 题目链接:LOJ 题目大意:定义函数 $f$:($minp$ 表示最小质因子) $$f(x)=\begin{cases}0&a ...
随机推荐
- c# 大白话告诉你Thread的Sleep和Join的区别
我们的程序默认会有两个线程,一个是主线程,一个是负责垃圾回收的线程.如果代码不使用多线程,就只有主线程这一条干道.1.在主线程中调用Thread.Sleep(1000),表示主线程阻塞自己1秒.2.在 ...
- 日志篇 随着win10更新...
随着win10更新到最新..我发现电脑出了点状况.. 一 是电脑睡眠主机不关闭...然后用了 https://jingyan.baidu.com/article/cb5d6105d76343005c2 ...
- mysql主从复制报错解决方案
mysql主从复制报错解决方案 我先制造个错误 在slave删除个info3字段 然后在master 在info3插入数据 报错如下<pre> Last_SQL_Errno: 1054 L ...
- Linux之三剑客
LINUX之三剑客 本篇主要介绍linux下常用的增删改查工具: grep sed awk grep是linux下一个强大的搜索工具,几乎操作linux的用户每天都会或多或少的用到grep命令,单一个 ...
- Xamarin.Android 6.0以后开启权限方法
Android 6.0 版本以上一些危险权限只能在运行的时候依次询问用户是否赋予,所以在开发的时候使用 RequestPermissions 方法单独请求所需要的权限. 代码: //开启相机权限 if ...
- Springboot Actuator之十一:actuator transaction
前言spring boot 的自动化配置其实就是在spring 的基础上做的封装,在我们之前对mvc,aop的自动化配置中可以发现–> 只是在spring 的基础上添加了一些特性,可以认为只是一 ...
- MODBUS 数据格式相关记录
串口通讯格式: 串口通讯可以分为同步通讯(Synchronous)和异步通讯(Asynchronous).同步通讯时有一根时钟信号,数据格式中没有起始位和停止位:异步通讯中没有时钟信号,数据格式中包含 ...
- SQL分类之DCL:管理用户、授权
DCL:管理用户.授权 SQL分类: DDL:操作数据库和表 DML:增删改表中的数据 DQL:查询表中的数据 DCL:管理用户.授权 DBA:数据库管理员 DCL:管理用户.授权 1.管理用户 1. ...
- asp.net core mvc 集成miniprofiler
原文:asp.net core mvc 集成miniprofiler asp.net core mvc 集成miniprofiler 一.环境介绍 二.监控asp.net 页面 三.监控执行的sql语 ...
- Kafka Streams的Data Types and Serialization
Avro <repositories> <repository> <id>confluent</id> <url>http://packag ...