Luogu3768简单的数学题
题目描述

题解
我们在一通化简上面的式子之后得到了这么个东西。

前面的可以除法分块做,后面的∑T2∑dµ(T/d)是积性函数,可以线性筛。
然后这个数据范围好像不太支持线性筛,所以考虑杜教筛。
后面那个东西是个id*µ,恰好等于φ。
所以我们求得东西就变成了i2φ。
由于φ*I=id。所以我们令g(i)=i2,f(x)=i2φ,f*g=i3
于是这道题就做完了。
附:1^2+2^2+3^2+...+n^2=n*(n+1)*(2*n+1)/6,1^3+2^3+...+n^3=(1+2+3+..+n)^2。
代码
#include<iostream>
#include<cstdio>
#include<map>
#define N 5000009
using namespace std;
typedef long long ll;
map<ll,ll>mp;
const int maxn=;
ll mod,ans,inv2,inv6,k,phi[N],n;
int prime[N];
bool vis[N];
inline ll rd(){
ll x=;char c=getchar();bool f=;
while(!isdigit(c)){if(c=='-')f=;c=getchar();}
while(isdigit(c)){x=(x<<)+(x<<)+(c^);c=getchar();}
return f?-x:x;
}
inline ll power(ll x,ll y){
ll ans=;
while(y){if(y&)ans=ans*x%mod;x=x*x%mod;y>>=;}
return ans;
}
inline void prework(){
ll k;
phi[]=;
for(int i=;i<=maxn;++i){
if(!vis[i]){prime[++prime[]]=i;phi[i]=i-;}
for(int j=;j<=prime[]&&(k=i*prime[j])<=maxn;++j){
vis[i*prime[j]]=;
if(i%prime[j]==){phi[i*prime[j]]=phi[i]*prime[j];break;}
else phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
for(int i=;i<=maxn;++i)phi[i]=(phi[i]*i%mod*i%mod+phi[i-])%mod;
}
inline ll sum(ll x){return x%mod*(x+)%mod*inv2%mod;}
inline ll pf(ll x){return x%mod*x%mod;}
inline ll pfsum(ll x){return x%mod*(x+)%mod*(*x%mod+)%mod*inv6%mod;}
ll get_phi(ll n){
if(n<=maxn)return phi[n];
if(mp.find(n)!=mp.end())return mp[n];
ll ans=pf(sum(n));ll r;
for(ll l=;l<=n;l=r+){
r=n/(n/l);
ll x=((pfsum(r)-pfsum(l-))%mod+mod)%mod;
ans=(ans-x*get_phi(n/l)%mod+mod)%mod;
}
return mp[n]=ans;
}
int main(){
mod=rd();n=rd();
inv2=power(,mod-);inv6=power(,mod-);
prework();
ll l,r;
for(l=;l<=n;l=r+){
r=n/(n/l);
ans+=pf(sum(n/l))*(get_phi(r)-get_phi(l-))%mod;
ans=(ans%mod+mod)%mod;
}
cout<<ans;
return ;
}
Luogu3768简单的数学题的更多相关文章
- 【学术篇】luogu3768 简单的数学题(纯口胡无代码)
真是一道"简单"的数学题呢~ 反演题, 化式子. \[ ans=\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j) \\ =\sum_{i=1}^n\sum_{j ...
- [Luogu3768]简单的数学题
题面戳我 题意:求 \[\sum_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j)\] \(n\le10^{10}\) sol \[ans=\sum_{d=1}^{n}d\sum_ ...
- [luogu3768] 简单的数学题 [杜教筛]
题面: 传送门 实际上就是求: 思路: 看到gcd就先反演一下,过程大概是这样: 明显的一步反演 这里设,S(x)等于1到x的和 然后把枚举d再枚举T变成先枚举T再枚举其约数d,变形: 后面其中两项展 ...
- 【Luogu3768】简单的数学题(莫比乌斯反演,杜教筛)
[Luogu3768]简单的数学题(莫比乌斯反演,杜教筛) 题面 洛谷 \[求\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j)\] $ n<=10^9$ 题解 很明显的把\( ...
- 【数学】HPU--1037 一个简单的数学题
1037: 一个简单的数学题 [数学] 时间限制: 1 Sec 内存限制: 128 MB提交: 259 解决: 41 统计 题目描述 小明想要知道$a^b$的值,但是这个值会非常的大. 所以退而求其次 ...
- 【LG3768】简单的数学题
[LG3768]简单的数学题 题面 求 \[ (\sum_{i=1}^n\sum_{j=1}^nij\text{gcd}(i,j))\text{mod}p \] 其中\(n\leq 10^{10},5 ...
- luoguP3768 简单的数学题
题目链接 luoguP3768 简单的数学题 题解 上面那个式子的最后一步,需要定理 用数学归纳法证明 \(S1=1^3=1^2\) \(S2=1^3+2^3=9=3^2=(1+2)^2\) \(S3 ...
- 洛谷 P3768 简单的数学题 解题报告
P3768 简单的数学题 题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数\(n\)和一个整数\(p,\)你需要求出\((\sum_{i=1}^n\sum_{j=1}^n ijgc ...
- loj#6229 这是一道简单的数学题
\(\color{#0066ff}{ 题目描述 }\) 这是一道非常简单的数学题. 最近 LzyRapxLzyRapx 正在看 mathematics for computer science 这本书 ...
随机推荐
- C# 添加枚举中文资源
在业务开发过程中,添加枚举,在固定枚举值的同时,也需要中文的文案. 如果不想添加语言资源项.添加枚举转语资源项,可以使用特性标记. 属性描述 DescriptionAttribute 先看案例: pu ...
- C# 在PPT中绘制形状(shape)
概述 本篇文章将介绍C# 在PPT幻灯片中操作形状(shape)的方法.这里主要涉及常规形状,如箭头.矩形.圆形.三角形.多边形.不规则形状等.下面的示例中,可以通过绘制形状,并设置相应格式等.示例包 ...
- 倒计时5S秒自动关闭弹窗
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Spring MVC(一)五大核心组件和配置
一,五大核心组件 1.DispatcherServlet 请求入口 2.HandlerMapping 请求派发,负责请求和控制器建立一一对应的关系 3.Controller 处理器 4.Mod ...
- Math.floor(Math.random()*3+1)
Math.random():获取0~1随机数 Math.floor() method rounds a number DOWNWARDS to the nearest integer, and ret ...
- 【Android】用Cubism 2制作自己的Live2D——官方App样例源码学习(2)!
前言- 明确了项目目录的结构,但是结构什么的也太"抽象"了. 本篇开始上代码! 模型的绘制- 前几天的学习中,live2d的绘制有了一些了解了,在Android端使用OpenGL ...
- 深入理解group by 语句的执行顺序 from→where→group by→select(含聚合函数)
由于之前没有对group by 语句的执行顺序(执行原理)做深入的了解,所以导致在实际应用过程中出现了一些问题.举个简单的粟子,比如一个表testA中的所有数据如下图: 我现在想从testA中查询us ...
- 深入浅出ES6教程模块化
大家好,本人名叫苏日俪格,大家叫我 (格格) 就好,在上一章节中我们学到了Promise的用法,下面我们一起来继续学习模块化: JavaScript本身是不支持模块化的,只不过后来一些社区的大佬制定了 ...
- 使用Linq的过程中碰到的问题
1. 在使用linq过程DefaultIfEmpty的过程中如果 O.RS 这个支段的值是null,在取这个数据 就会报错 ,正确的写法 2. 在使用Linq 用where条件判断要好分辨大小写 3. ...
- 记录一次Orthanc dicom数据异常手动修复
问题复现场景 同一个StudyInstanceUID,对应两个不同的PatientID. 通俗讲,原本是一个病人的一次影像,却割裂成两个病人的影像,虽然两个病人不影响系统数据,但是同一个Study分别 ...