luogu P2260 [清华集训2012]模积和 |数论分块
题目描述
求
mod 19940417 的值
输入格式
输入只有一行两个整数 ,。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define int long long
const int mod=19940417;
inline int ksm(int x,int y){
int ans=1;
while(y){
if(y&1)ans=ans*x%mod;
x=x*x%mod; y>>=1;
}
return ans;
}
inline int sum1(int p,int q){
return (((q+p)*(q-p+1))>>1 )%mod;
}
int inv=ksm(6,17091779);
inline int sum2(int x){
return (x*(x+1))%mod*(2*x+1)%mod*inv%mod;
}
int cal(int n){
int ans=0;
for(int l=1,r=0;l<=n;l=r+1){
r=n/(n/l);
ans=(ans+ n*(r-l+1)%mod -sum1(l,r)*(n/l)%mod +mod )%mod;
}
return ans;
}
signed main(){
int n,m;
cin>>n>>m;
int ans=cal(n)*cal(m)%mod;
if(n>m)swap(n,m);
for(int l=1,r=0;l<=n;l=r+1){
r=min(n/(n/l),m/(m/l));
int op1=(n/l),op2=(m/l);
ans=(ans- (n*m%mod*(r-l+1))%mod+mod)%mod;
ans=(ans- op1*op2%mod*(sum2(r)-sum2(l-1)+mod)%mod+mod)%mod;
ans=(ans+ (op1*m%mod+op2*n%mod)*sum1(l,r)%mod)%mod;
}
cout<<(ans%mod+mod)%mod<<endl;
}
不以物喜,不以己悲
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-01-13 luogu P4366 [Code+#4]最短路 |最短路
2020-01-13 luogu AT2300 Snuke Line |树状数组