BZOJ2154: Crash的数字表格
来源:互联网 发布:创维32e500e数据 编辑:程序博客网 时间:2024/06/06 01:33
BZOJ2154
题目要求的是
那么我们枚举
原式变成了:
定义
那么原式
定义
那么
令
令
【代码】
#include <cstdio>#include <iostream>#include <algorithm>#define N 10000005#define INF 0x7fffffff#define mod 20101009using namespace std;typedef long long ll;typedef pair<int,int> pa;int read(){ int x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return x*f;}int n,m;int Miu[N],p[N];ll sum[N];bool Not_Prime[N];void Get_Miu(){ Miu[1]=sum[1]=1; for(register int i=2;i<=m;i++) { if(!Not_Prime[i]) p[++p[0]]=i,Miu[i]=-1,sum[i]=1LL*i*(1-i); for(register int j=1;j<=p[0]&&i*p[j]<=m;j++) { Not_Prime[i*p[j]]=1; if(i%p[j]!=0) Miu[i*p[j]]=-Miu[i],sum[i*p[j]]=sum[i]*sum[p[j]]; else {sum[i*p[j]]=sum[i]*p[j];break;} } } for(register int i=1;i<=n;i++) sum[i]=(sum[i-1]+sum[i]+mod)%mod;}ll Get_Sum(int x,int y){ return (1LL*x*(x+1)/2)%mod*((1LL*y*(y+1)/2)%mod)%mod;}int main(){ n=read(),m=read();if(n>m) swap(n,m); Get_Miu(); int pos;ll ans=0; for(register int i=1;i<=n;i=pos+1) { pos=min(n/(n/i),m/(m/i)); ans=(ans+Get_Sum(n/i,m/i)*(sum[pos]-sum[i-1]+mod))%mod; ans=(ans+mod)%mod; } printf("%lld\n",ans); return 0;}
阅读全文
0 0
- 【BZOJ2154】Crash的数字表格
- bzoj2154: Crash的数字表格
- BZOJ2154: Crash的数字表格
- bzoj2154: Crash的数字表格
- [bzoj2154]Crash的数字表格
- bzoj2154 Crash的数字表格
- bzoj2154 Crash的数字表格
- [BZOJ2154] Crash的数字表格
- bzoj2154 Crash的数字表格
- bzoj2154 Crash的数字表格
- bzoj2154: Crash的数字表格
- bzoj2154: Crash的数字表格
- [bzoj2154]Crash的数字表格
- BZOJ2154: Crash的数字表格
- bzoj2154 Crash的数字表格
- [bzoj2154]Crash的数字表格
- 【bzoj2154】Crash的数字表格
- BZOJ2154 Crash的数字表格
- 编写java程序151条建议读书笔记(14)
- JDK和Java EE SDK区别
- 兼容新旧浏览器的flex写法
- 我如何在计算机视觉顶级会议CVPR上发表论文?
- thinkphp整合极验滑动验证码源码演示下载
- BZOJ2154: Crash的数字表格
- 插入排序及其优化方案
- 《UNIX网络编程 卷1》 笔记补充内容: 高级轮询技术epoll
- Android 自定义圆形进度条
- GRE 协议rfc总结
- POJ
- SSH
- 重读网峰A8文档---之---Linux内核结构以及移植过程
- msm8974 camera driver添加新摄像头kernel hal修改