【数论】数表(P3312)

正题

P3312


题目大意

给出n,m,a,求∑i=1n∑j=1mσ(gcd(i,j))[σ(gcd(i,j))≤a]\sum_{i=1}^n\sum_{j=1}^m\sigma(gcd(i,j))[\sigma(gcd(i,j))\leq a]i=1nj=1mσ(gcd(i,j))[σ(gcd(i,j))a]


解题思路

先不考虑a的条件限制
∑i=1n∑j=1mσ(gcd(i,j))\sum_{i=1}^n\sum_{j=1}^m\sigma(gcd(i,j))i=1nj=1mσ(gcd(i,j))
∑d=1nσ(d)∑i=1n/d∑j=1m/d∑c∣i,c∣jμ(c)\sum_{d=1}^n\sigma(d)\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}\sum_{c|i,c|j}\mu(c)d=1nσ(d)i=1n/dj=1m/dci,cjμ(c)
∑d=1nσ(d)∑c∣i,c∣jμ(c)⌊ncd⌋⌊mcd⌋\sum_{d=1}^n\sigma(d)\sum_{c|i,c|j}\mu(c)\left\lfloor\frac{n}{cd}\right\rfloor\left\lfloor\frac{m}{cd}\right\rfloord=1nσ(d)ci,cjμ(c)cdncdm

设k=cd,枚举k

∑k=1n⌊nk⌋⌊mk⌋∑d∣kσ(d)μ(kd)\sum_{k=1}^n\left\lfloor\frac{n}{k}\right\rfloor\left\lfloor\frac{m}{k}\right\rfloor\sum_{d|k}\sigma(d)\mu(\frac{k}{d})k=1nknkmdkσ(d)μ(dk)

对于后面一部分可以预处理出来

然后整除分块即可

考虑a的限制条件,可以离线处理

先对a进行排序,只计算满足条件的d,对于一段区间的和可以用树状数组

时间复杂度 O(Tnlogn)O(T\sqrt{n}\ log\ n)O(Tn log n)


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 100100
#define mod 2147483648
#define mp make_pair
#define fs first
#define sn second
using namespace std;
ll t,w,n,m,ans,now,g[N],f[N],p[N],c[N],qs[N],mu[N],prime[N];
pair<ll,ll>a[N];
struct node
{ll n,m,a,v;
}q[N];
bool cmp(node a,node b)
{return a.a<b.a;
}
void work()
{mu[1]=f[1]=1;for(ll i=2;i<=1e5;++i){if(!p[i]){prime[++w]=i;mu[i]=-1;f[i]=i+1;g[i]=i+1;}for(ll j=1;j<=w&&i*prime[j]<=1e5;++j){p[i*prime[j]]=1;if(i%prime[j]==0){g[i*prime[j]]=g[i]*prime[j]+1;f[i*prime[j]]=f[i]/g[i]*g[i*prime[j]];}else{mu[i*prime[j]]=-mu[i];g[i*prime[j]]=prime[j]+1;f[i*prime[j]]=f[i]*g[i*prime[j]];}}}for(ll i=1;i<=1e5;++i)a[i]=mp(f[i],i);sort(a+1,a+1+100000);return;
}
void add(ll x,ll y)
{for(;x<=1e5;x+=x&-x)(c[x]+=y)%=mod;return;
}
ll ask(ll x)
{ll sum=0;for(;x;x-=x&-x)(sum+=c[x])%=mod;return sum;
}
int main()
{scanf("%lld",&t);for(ll i=1;i<=t;++i){scanf("%lld%lld%lld",&q[i].n,&q[i].m,&q[i].a);q[i].v=i;}sort(q+1,q+1+t,cmp);work();now=1;for(ll i=1;i<=t;++i){while(now<=1e5&&a[now].fs<=q[i].a){for(ll j=1;a[now].sn*j<=1e5;++j)add(a[now].sn*j,(a[now].fs*mu[j]%mod+mod)%mod);now++;}ans=0;n=q[i].n;m=q[i].m;for(ll l=1,r=0;l<=min(n,m);l=r+1){r=min(n/(n/l),m/(m/l));(ans+=(ask(r)-ask(l-1)+mod)%mod*(n/l)%mod*(m/l)%mod)%=mod;}qs[q[i].v]=ans;}for(int i=1;i<=t;++i)printf("%lld\n",qs[i]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces1452 E. Two Editorials

E. Two Editorials 官方题解 首先将每个参赛者按照区间中点排序&#xff0c;那么前一段参赛者听第一个人&#xff0c;而后一段听第二个人的。 预处理数组su[j]表示j→mj\to mj→m这些参赛者能被“覆盖”最多“贡献” 只需要枚举第一个人演讲的区间&#xff0c;再考虑前多少参赛…

.NET Core微服务之路:利用DotNetty实现一个简单的通信过程

上一篇我们已经全面的介绍过《基于gRPC服务发现与服务治理的方案》&#xff0c;我们先复习一下RPC的调用过程&#xff08;笔者会在这一节的几篇文章中反复的强调这个过程调用方案&#xff09;&#xff0c;看下图根据上面图&#xff0c;服务化原理可以分为3步&#xff1a;服务端…

codeforces1451 C. String Equality

真的弱&#xff0c;这题都想蹦了。 这场md&#xff0c;b题看错题调了1小时才发现&#xff0c;c题上来也看错。。最后懒得写了睡觉~ C. String Equality 神的讲解 注意到连续k个相同字符才能使用操作二&#xff0c;不过我们可以交换&#xff0c;由此不难知道是否能够交换之和出…

YbtOJ#732-斐波那契【特征方程,LCT】

正题 题目链接:http://www.ybtoj.com.cn/contest/125/problem/2 题目大意 给出nnn个点的一棵树&#xff0c;以111为根&#xff0c;每个点有点权aia_iai​。要求支持mmm次操作 修改一个修改一个节点的父节点修改一条路径的权值为www给出uuu询问Fbi(au)Fbi(a_u)Fbi(au​)给出u…

2020牛客国庆集训派对day3 Leftbest

Leftbest 链接&#xff1a;https://ac.nowcoder.com/acm/contest/7830/A 来源&#xff1a;牛客网 题目描述 Jack is worried about being single for his whole life, so he begins to use a famous dating app. In this app, the user is shown single men/women’s photos …

【笛卡尔树】【树状数组】Beautiful Pair(P4755)

正题 P4755 题目大意 给你n个数&#xff0c;问你有多少对二元组 (i,j)(i,j)(i,j) 满足 i≤ji\leq ji≤j 且 aiaj≤maxiijaia_i\times a_j\leq max_{ii}^ja_iai​aj​≤maxiij​ai​ 解题思路 考虑对原数组构建笛卡尔树&#xff0c;树中左右子树之间的二元组所取得的max就是当…

[译]ASP.NET Core中使用MediatR实现命令和中介者模式

在本文中&#xff0c;我将解释命令模式&#xff0c;以及如何利用基于命令模式的第三方库来实现它们&#xff0c;以及如何在ASP.NET Core中使用它来解决我们的问题并使代码简洁。因此&#xff0c;我们将通过下面的主题来进行相关的讲解。什么是命令模式?命令模式的简单实例以及…

【贪心】数据备份(P6320)

正题 P6320 题目大意 有n个点&#xff0c;相邻的点不能同时选&#xff0c;问你选k个的最小代价 解题思路 考虑贪心取每个点&#xff0c;取了一个点后设置一个撤回点&#xff0c;就是把该点的选择取反&#xff0c;同时选择左右&#xff0c;这样直接用堆维护即可 code #inclu…

codeforces1451 D. Circle Game

D. Circle Game 看到博弈题&#xff0c;直接打表不过并不能发现什么规律gg 后手每次按照先手对称进行移动&#xff0c;如果先手向右则向上&#xff0c;先手向上则向右&#xff0c;然后考虑最后一步即可。 对称技巧&#xff01;&#xff01;&#xff01; #define IO ios::syn…

2020-10-03

Flowers 题目描述 Recently Jack becomes much more romantic. He would like to prepare several bunches of flowers. Each bunch of flowers must have exactly M flowers. As Jack does not want to be boring, he hopes that flowers in the same bunch are all differ…

P4770-[NOI2018]你的名字【SAM,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P4770 题目大意 给出一个长度为nnn的字符串SSS。qqq次询问给出一个串TTT和一个区间[L,R][L,R][L,R]&#xff0c;求TTT有多少个本质不同的子串不是SL∼RS_{L\sim R}SL∼R​的子串。 1≤n≤5105,1≤Q≤105,∑∣T∣≤1061\leq n…

.NET in Browser - Blazor

什么是BlazorBlazor 是一个实验性的. NET web 框架, 使用 C# 和 HTML 在任何浏览器中不需要插件即可运行 WebAssembly 程序集。什么是WebAssemblyWebAssembly是一种新的适合于编译到Web的&#xff0c;可移植的&#xff0c;大小和加载时间高效的格式&#xff0c;是一种新的字节码…

【数论】【杜教筛】选数(P3172)

正题 P3172 题目大意 在 [L,R] 选n个数&#xff0c;问gcdk的方案数 解题思路 因为gcdk&#xff0c;那么所选的数都是k的倍数&#xff0c;那么可以让L,R整除k&#xff0c;那么有 ∑a1LR∑a2LR...∑anLR[gcd(a1,a2...an)1]\sum_{a_1L}^R\sum_{a_2L}^R...\sum_{a_nL}^R[gcd(a_1…

【模板】吉老师线段树

ACM模板 目录区间取最值区间取最值 Gorgeous Sequence 区间最值操作往往采用以下办法 线段树维护&#xff1a; 区间最大值mx\text{mx}mx区间严格次大值smx\text {smx}smx区间和sum\text{sum}sum区间最大值个数cnt\text{cnt}cnt区间最值懒标记lazy\text{lazy}lazy 实现区间…

2020牛客国庆集训派对day4 Digits Are Not Just Characters

Digits Are Not Just Characters 题意&#xff1a; 比较大小&#xff0c;如果比目标字符串大输出“”&#xff0c;相等也输出“”&#xff0c;小则输出“-”&#xff1a; 比较规则&#xff1a; 字母大于数字 两个字母比较按照ASCII码 当被解释为十进制数时&#xff0c;两个数…

CF453C-Little Pony and Summer Sun Celebration【构造】

正题 题目链接:https://www.luogu.com.cn/problem/CF453C 题目大意 nnn个点mmm条边的一张无向图&#xff0c;每个节点有一个wiw_iwi​表示该点需要经过奇数/偶数次。 求一条满足条件的长度不超过4n4n4n的路径 1≤n,m≤1051\leq n,m\leq 10^51≤n,m≤105 解题思路 一个结论就…

在碰撞中成长 - 北京银行的DevOps实践之路

2018年10/27日&#xff0c;在上海召开的微软年度最大规模的技术盛会—微软2018技术暨生态大会上&#xff0c;北京银行渠道系统负责人&敏捷团队负责人周兵女士和大家一起分享了北京银行的DevOps 实践转型经验&#xff0c;得到了大会听众的热烈评价和共鸣&#xff0c;会后众多…

【笛卡尔树】【线段树】meetings 会议(P5044)

正题 P5044 题目大意 给出一个序列a&#xff0c;设 dist(x,y)max⁡ixyaidist(x,y)\max_{ix}^ya_idist(x,y)maxixy​ai​&#xff0c;有m个询问&#xff0c;对于每个询问&#xff0c;给出 l,r&#xff0c;让你找一个点x(l≤x≤r)(l\leq x\leq r)(l≤x≤r)&#xff0c;使得 ∑i…

codeforces438 D. The Child and Sequence

2020威海区域赛G. Caesar Cipher就用到了此思想&#xff08; 今天碰到模板题了还是再写一遍吧 D. The Child and Sequence 区间取模操作模板题 有一个公式 x%p<x2(x>p)x\%p<\frac{x}{2}(x>p)x%p<2x​(x>p) 由此对于每一个数最多模log次&#xff0c;如果我们…

2020牛客国庆集训派对day4 Emergency Evacuation

Emergency Evacuation 题意&#xff1a; 有n个人在不同的位置上&#xff0c;在最后面有一个出口exit&#xff0c;所有人都要逃离出去&#xff08;走出出口&#xff09;&#xff0c;且每个格子最多容纳一个人&#xff0c;当有人挡在前面时&#xff0c;后面的人必须停留&#x…