传送门

不会……

两篇加在一起都看不懂……

https://www.cnblogs.com/cellular-automaton/p/8241128.html

https://www.luogu.org/blog/cjyyb/solution-p3768

 //minamoto
#include<iostream>
#include<cstdio>
#include<map>
#define ll long long
using namespace std;
const int N=4e6+;
map<ll,ll> mp;
ll sum[N],phi[N],pri[N],cnt,vis[N],mod6,mod;
//mod是2的逆元,mod6是6的逆元
void init(ll p){
vis[]=sum[]=;
for(int i=;i<N;++i){
if(!vis[i]) pri[++cnt]=i,phi[i]=i-,sum[i]=1ll*i*i%p*phi[i]%p;
for(int j=;j<=cnt,i*pri[j]<N;++j){
vis[i*pri[j]]=;
int now=i*pri[j];
if(i%pri[j]==){
phi[now]=phi[i]*pri[j]%p;
sum[now]=phi[now]*now%p*now%p;
break;
}
phi[now]=phi[i]*(pri[j]-)%p;
sum[now]=phi[now]*now%p*now%p;
}
}
for(int i=;i<N;++i) (sum[i]+=sum[i-])%=p;
}
ll ksm(ll x,ll y,ll p){
ll res=;
while(y){
if(y&) (res*=x)%=p;
(x*=x)%=p,y>>=;
}
return res;
}
ll calc(ll n,ll p){
n%=p;
ll res=((+n)*n%p)*mod%p;
(res*=res)%=p;
return res;
}
ll calcs(ll n,ll p){
n%=p;
ll res=(n*(n+)%p)*(*n+)%p;
(res*=mod6)%=p;
return res;
}
ll calcsum(ll n,ll p){
if(n<N) return sum[n];
if(mp.count(n)) return mp[n];
ll x=,res=calc(n,p);
while(x<=n){
ll y=n/(n/x);
res=((res-(calcs(y,p)-calcs(x-,p)+p)%p*calcsum(n/x,p)%p)+p)%p;
x=y+;
}
return mp[n]=res;
}
int main(){
// freopen("testdata.in","r",stdin);
ll p,n;
scanf("%lld%lld",&p,&n);
mod=ksm(,p-,p),mod6=ksm(,p-,p);
init(p);
ll x=,ans=;
while(x<=n){
ll y=n/(n/x);
(ans+=((calcsum(y,p)-calcsum(x-,p)+p)%p*calc(n/x,p)%p))%=p;
x=y+;
}
printf("%lld\n",ans);
return ;
}

洛谷P3768 简单的数学题(莫比乌斯反演+狄利克雷卷积+杜教筛)的更多相关文章

  1. 洛谷P3768 简单的数学题 莫比乌斯反演+杜教筛

    题意简述 求出这个式子 \[ \sum_{i=1}^n\sum_{j=1}^n ij(i,j) \bmod p \] 做法 先用莫比乌斯反演拆一下式子 \[ \begin{split} \sum_{i ...

  2. 中国剩余定理 & 欧拉函数 & 莫比乌斯反演 & 狄利克雷卷积 & 杜教筛

    ssplaysecond的博客(请使用VPN访问): 中国剩余定理: https://ssplaysecond.blogspot.jp/2017/04/blog-post_6.html 欧拉函数: h ...

  3. 【刷题】洛谷 P3768 简单的数学题

    题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数n和一个整数p,你需要求出(\(\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j))~mod~p\),其中gcd ...

  4. 洛谷 - P3768 - 简单的数学题 - 欧拉函数 - 莫比乌斯反演

    https://www.luogu.org/problemnew/show/P3768 \(F(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}ijgcd(i ...

  5. 洛谷 P3768 简单的数学题 解题报告

    P3768 简单的数学题 题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数\(n\)和一个整数\(p,\)你需要求出\((\sum_{i=1}^n\sum_{j=1}^n ijgc ...

  6. 洛谷P3768 简单的数学题

    解: 神奇的一批......参观yyb巨神的博客. 大致思路就是第一步枚举gcd,发现后面有个限制是gcd=1,用反演,得到的F(x)是两个等差数列求积. 然后发现有个地方我们除法的除数是乘积,于是换 ...

  7. 洛谷 P3768 简单的数学题

    https://www.luogu.org/problemnew/show/P3768 化简一下式子,就是$\sum_{d=1}^ncalc(d)d^2\varphi(d)$ 其中$calc(d)=\ ...

  8. 洛谷P3768 简单的数学题 【莫比乌斯反演 + 杜教筛】

    题目描述 求 \[\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} i*j*gcd(i,j) \pmod{p}\] \(n<=10^{10}\),\(p\) ...

  9. 洛谷 P3768 简单的数学题 (莫比乌斯反演)

    题意:求$(\sum_{i=1}^{n}\sum_{j=1}^{n}ijgcd(i,j))mod p$(p为质数,n<=1e10) 很显然,推式子. $\sum_{i=1}^{n}\sum_{j ...

随机推荐

  1. IOS UITableView reload 刷新某一个cell 或 section

    通常刷新整个列表 我们都使用[self.tableView reloadData]; 有的时候,有变化更新的只是某一行 row 或者是某个section 所以只更新这一行就好了 //一个section ...

  2. Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)

    默认情况,导航栏UINavigationController的样式如下,如果想要使用代码修改样式也是比较简单的. 1,修改导航栏背景色 1 2 3 //修改导航栏背景色 self.navigation ...

  3. Android 4.0 的 GridLayout

    设计素材代码: 1<?xml version="1.0" encoding="utf-8"?> 2<GridLayout//#http://w ...

  4. 苹果AppStore如何申请加急审核

    登录iTunesconnect,点击右上角的“?”图标,选择“联系我们”. iTunes Connect首页 依次选择“App Review”.“App Store Review” .” Reques ...

  5. html5--2.1新的布局元素概述

    html5--2.1新的布局元素概述 学习要点 了解HTML5新标签(元素)的优点 了解本章要学习的新的布局元素 了解本章课程的安排 HTML5新标签的优点: 更注重于内容而不是形式 对人的友好:更加 ...

  6. JNDI数据源配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...

  7. BZOJ2726:任务安排(DP+斜率优化+二分)

    机器上有N个需要处理的任务,它们构成了一个序列.这些任务被标号为1到N,因此序列的排列为1,2,3...N.这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务 ...

  8. 【Lintcode】135.Combination Sum

    题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C  ...

  9. Wmware Player中Linux挂载U盘

    菜单(Player)中有一项是可移动设备,中选择U盘,然后选择连接(断开主机), 然后在命令行中敲入 fdisk -l 正常情况下是sda是硬盘的信息,然后将会看到一个单蹦的sdb4的信息(sdb4可 ...

  10. ubuntu14.04 设置默认使用root用户登录

    首先修改/etc/lightdm/lightdm.conf,设置autologin-user=root 但是此时直接重启,会报如下的错误: 解决办法: 使用命令: vim /root/.profile ...