题解都在论文里了

#include<bits/stdc++.h>
using namespace std;
#define maxn 10000005
#define ll long long
#define mod 20101009 bool vis[maxn];
int sum[maxn],prime[maxn],mm,mu[maxn];
void primes(){
mu[]=;
for(int i=;i<maxn;i++){
if(!vis[i]){
prime[++mm]=i;
mu[i]=-;
}
for(int j=;j<=mm;j++){
if(i*prime[j]>=maxn)break;
vis[i*prime[j]]=;
if(i%prime[j]==){
mu[i*prime[j]]=;
break;
}
else mu[i*prime[j]]=-mu[i];
}
}
for(int i=;i<maxn;i++)
sum[i]=(sum[i-]+(ll)mu[i]*i%mod*i%mod)%mod;
}
ll n,m; inline ll Sum(ll n,ll m){
ll res1=((+n)*n/)%mod;
ll res2=((+m)*m/)%mod;
return res1*res2%mod;
}
inline ll F(ll n,ll m){
ll res=;
if(n>m)swap(n,m);
for(int l=,r;l<=n;l=r+){
r=min(n/(n/l),m/(m/l));
ll tmp=((sum[r]-sum[l-])%mod+mod)%mod;
res=(res+tmp*Sum(n/l,m/l)%mod)%mod;
}
return res;
} int main(){
primes(); scanf("%lld%lld",&n,&m);
if(n>m)swap(n,m);
ll ans=;
for(int l=,r;l<=n;l=r+){
r=min(n/(n/l),m/(m/l));
ll tmp=(ll)(l+r)*(r-l+)/%mod;
ans=(ans+tmp*F(n/l,m/l)%mod)%mod;
}
cout<<ans<<endl;
}

反演+分块套分块——bzoj2154的更多相关文章

  1. BZOJ.3920.Yuuna的礼物(莫队 分块套分块 分段离散化)

    题目链接 详细题解:https://www.cnblogs.com/autsky-jadek/p/4376091.html 代码参考自:https://www.cnblogs.com/Sakits/p ...

  2. bzoj3920: Yuuna的礼物(莫队+分块套分块)

    思路挺简单的,但是总感觉好难写...码力还是差劲,最后写出来也挺丑的 这题显然是个莫队题,考虑怎么转移和询问... 根据莫队修改多查询少的特点,一般用修改快查询慢的分块来维护.查第$k_1$小的出现次 ...

  3. 整除分块套杜教筛为什么是 O(n^2/3) 的

    假设我们要筛一个东西叫做 \(f\) . 记 \[D(n)=\left\{n,\left\lfloor\dfrac n2\right\rfloor,\left\lfloor\dfrac n3\righ ...

  4. 【bzoj2154】Crash的数字表格 莫比乌斯反演

    题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如,LCM(6, ...

  5. 【bzoj4816】[Sdoi2017]数字表格 莫比乌斯反演

    题目描述 Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生 ...

  6. 洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    题目背景 提示:原 P1829 半数集问题 已经迁移至 P1028 数的计算 题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a ...

  7. 一些gcd计数问题

    数论什么的全都忘光了吧QAQ 做了几道简单的题练习一下. bzoj1101: [POI2007]Zap 求有多少对数满足 gcd(x,y)=d, 1<=x<=a, 1<=y<= ...

  8. 题解-MtOI2019 幽灵乐团

    题面 MtOI2019 幽灵乐团 给定 \(p\),\(Cnt\) 组测试数据,每次给 \(a,b,c\),求 \[\prod_{i=1}^a\prod_{j=1}^b\prod_{k=1}^c\le ...

  9. 题解-[SDOI2017]数字表格

    题解-[SDOI2017]数字表格 前置知识: 莫比乌斯反演</> [SDOI2017]数字表格 \(T\) 组测试数据,\(f_i\) 表示 \(\texttt{Fibonacci}\) ...

随机推荐

  1. visual studio 自定义警告标签

    写代码中经常会遇见某段代码写的不大合适或者是有隐患,但是一时半会有没时间不去完善,总体上不影响程序,也就放下了 结果时间一久就给忘了 vs提供了自定义警告的功能,这样就能有个提醒啦,方便以后改进 us ...

  2. java笔试常见的选择题

    1.已知表达式int m[] = {0,1,2,3,4,5,6}; 下面那个表达式的值与数组的长度相等()A m.length()B. m.lengthC. m.length()+1D. m.leng ...

  3. vuex之module的使用

    一.module的作用 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象.当应用变得非常复杂时,store 对象就有可能变得相当臃肿. 为了解决以上问题,Vuex 允许我们将 store 分 ...

  4. Android 如何使edittext默认失去焦点

    1.在布局文件中给edittext的父控件增加两个属性 android:focusable="true" android:focusableInTouchMode="tr ...

  5. SQL关于:警告: 聚合或其他 SET 操作消除了空值。

    方法一: create table tb ( id int, num int ) insert into tb select 1,10 insert into tb select 1,20 inser ...

  6. 【NOI2019模拟2019.6.29】组合数(Lucas定理、数位dp)

    Description: p<=10且p是质数,n<=7,l,r<=1e18 题解: Lucas定理: \(C_{n}^m=C_{n~mod~p}^{m~mod~p}*C_{n/p} ...

  7. 阿里小程序Serverless 操作指南

    小程序云 小程序云(Mini Program Cloud)是阿里云面向小程序场景提供的一站式云服务,帮助开发者实现一云多端的业务战略,提供了有服务器和无服务器两种模式.云应用是有服务器模式,提供了包括 ...

  8. jsp中提供的四种属性范围

    参考:http://www.cnblogs.com/xdp-gacl/p/3781056.html 1.当前页:一个属性只能在一个页面中取得,跳转到其他页面无法取得 2.一次服务器请求:一个页面中设置 ...

  9. 基础(一):SCSI硬盘与IDE硬盘有什么区别

    硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的 ...

  10. sublime text3配置c++环境和一些插件

    目录 Sublime Text 3是一个轻量级文本编辑器 下载sublime text 3: 安装MinGW 配置环境变量 win下行编译运行C/C++文件 Build你的C++System~ 快捷键 ...