【2011集训队出题】Crash的数字表格
来源:互联网 发布:淘宝商品排名软件 编辑:程序博客网 时间:2024/05/16 00:28
Description
求
Solution
对于一个式子的做法思路,有思路以后应该注意的东西
对于一个式子必须化简
对于有gcd的题目,常见思路
我们设n< m
我们可以枚举最小公倍数d
我们设一个
所以答案是
那么f(d)的求解自然就可以想到莫比乌斯反演
莫比乌斯反演后
g(d)其实可以化简
那么g(d)就是等于
因为这些都是d的倍数,然后在矩阵中再两两相乘。
提取供应式d,然后在用等差数列求和,得到
把这个带入答案求解里面
然后发现可以消掉一个d
分块大法
有整除的式子题,就用分块大法
预处理
用一个前缀和预处理
注意会爆空间
坑死人
Code
#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>#define fo(i,a,b) for(i=a;i<=b;i++)#define ll long longconst int mo=20101009;const int maxn=10000005;using namespace std;ll i,j,k,l,t,n,m,r,l1,r1,o,q;ll sum,sum1,ni,ans2,ans;int qian[maxn];int miu[maxn],zhi[maxn];bool bz[maxn];ll chu2(ll x){ if(x%2==0)return x/2*(x+1)%mo; else return (x+1)/2*x%mo;}int main(){ scanf("%d%d",&n,&m); if(n>m)swap(n,m); miu[1]=1;qian[1]=1; fo(i,2,n){ if(!bz[i]){ zhi[++zhi[0]]=i; miu[i]=-1; } fo(j,1,zhi[0]){ t=zhi[j]*i; if(t>n)break; bz[t]=1; if(i%zhi[j]==0)break; miu[t]=-miu[i]; } qian[i]=(qian[i-1]+miu[i]*i%mo*i%mo)%mo; } l1=1; while(l1<=n){ r1=min(n / (n / l1),m / (m / l1)); t=n / l1; k=m / l1; l=1; ans2=0; while(l<=t){ r=min(t/(t/l),k/(k/l));o=t/l,q=k/l; ans2=(ans2+(qian[r]-qian[l-1]+mo)*chu2(o)%mo*chu2(q))%mo; l=r+1; } ans=(ans+(chu2(r1)-chu2(l1-1)+mo)%mo*ans2%mo)%mo; l1=r1+1; } printf("%lld\n",ans);}
1 0
- 【2011集训队出题】Crash的数字表格
- 【2011集训队出题】Crash的数字表格
- 【2011集训队出题】【BZOJ 2154】【JZOJ 1938】Crash的数字表格
- 【BZOJ 2154】【JZOJ 1938】【2011集训队出题】Crash的数字表格
- 【jzoj1938】【2011集训队出题】【Crash的数字表格】【莫比乌斯反演】
- 【2011集训队出题】happiness
- 【2011集训队出题】happiness
- 【2011集训队出题】圈地计划
- 【2011集训队出题】数颜色
- 【集训队出题2011】大楼 题解
- 【BZOJ2154】Crash的数字表格
- bzoj2154: Crash的数字表格
- BZOJ2154: Crash的数字表格
- bzoj2154: Crash的数字表格
- [bzoj2154]Crash的数字表格
- bzoj2154 Crash的数字表格
- bzoj2154 Crash的数字表格
- [BZOJ2154] Crash的数字表格
- 基础测试查漏补缺
- C/C++中volatile关键字详解
- 用SQL找出前N名
- Android动态部署三:如何从插件apk中启动Activity(-)
- Command Line in Mac/Linux
- 【2011集训队出题】Crash的数字表格
- ASP数组的应用
- 中文支持
- hdu 1863(畅通工程)
- Mybatis 初学
- 2707: [SDOI2012]走迷宫 tarjan+高斯消元解期望方程组
- 【留言板】 勾搭神犇 orz
- HDOJ 2005 第几天?(使用对象)
- 算法竞赛入门经典(第二版)-刘汝佳-第八章 高效算法设计 习题(18/28)