【BZOJ3529】数表(莫比乌斯反演)(树状数组)(数学)
来源:互联网 发布:苹果6为什么没有4g网络 编辑:程序博客网 时间:2024/06/06 04:35
题目大意:
当
题解:
假设没有
设
∴
设
∴
暴力处理前缀和
计算
现在来考虑有a的限制。
发现只有
代码:
#include<cstdio>#include<algorithm>using namespace std;const int MAXN=100005,MAXQ=20005;typedef pair<int,int> sigma;struct Query{ int n,m,a,id; bool operator < (const Query &t)const { return a<t.a; }};struct tsum{ int s[MAXN]; void add(int val,int id) { for(int i=id;i<MAXN;i+=(i&(-i))) s[i]+=val; } int get(int id) { int ret=0; for(int i=id;i>0;i-=(i&(-i))) ret+=s[i]; return ret; }};Query que[MAXQ];int ans[MAXQ];sigma si[MAXN];int mu[MAXN],prime[MAXN/3],pcnt;bool noprime[MAXN];tsum fu;void Init();int main(){ Init(); int Q; scanf("%d",&Q); for(int i=1;i<=Q;i++) { scanf("%d%d%d",&que[i].n,&que[i].m,&que[i].a); que[i].id=i; } sort(que+1,que+Q+1); int lasta=0; for(int i=1;i<=Q;i++) { for(int j=lasta+1;si[j].first<=que[i].a;j++) { for(int k=1;k*si[j].second<MAXN;k++) fu.add(si[j].first*mu[k],k*si[j].second); lasta=j; } if(que[i].n>que[i].m) swap(que[i].n,que[i].m); int last=0; for(int d=1;d<=que[i].n;d=last+1) { last=min(que[i].n/(que[i].n/d),que[i].m/(que[i].m/d)); ans[que[i].id]+=(que[i].n/d)*(que[i].m/d)*(fu.get(last)-fu.get(d-1)); } ans[que[i].id]&=0x7FFFFFFF; } for(int i=1;i<=Q;i++) printf("%d\n",ans[i]); return 0;}void Init(){ noprime[1]=1; mu[1]=1; for(int i=1;i<MAXN;i++) { if(!noprime[i]) { prime[++pcnt]=i; mu[i]=-1; } for(int j=1;j<=pcnt&&i*prime[j]<MAXN;j++) { noprime[i*prime[j]]=1; if(i%prime[j]==0) break; mu[i*prime[j]]=-mu[i]; } } for(int i=1;i<MAXN;i++) for(int j=i;j<MAXN;j+=i) si[j].first+=i; for(int i=1;i<MAXN;i++) si[i].second=i; sort(si+1,si+MAXN);}
阅读全文
0 0
- 【BZOJ3529】数表(莫比乌斯反演)(树状数组)(数学)
- [BZOJ3529][Sdoi2014]数表(莫比乌斯反演+树状数组)
- [BZOJ3529][SDOI2014]数表(莫比乌斯反演+树状数组)
- [BZOJ3529][Sdoi2014]数表 && 莫比乌斯反演+树状数组
- [BZOJ3529]SDOI2014数表|莫比乌斯反演|树状数组
- 【bzoj3529】【SDOI2014】【数表】【莫比乌斯反演+树状数组】
- [BZOJ3529] [SDOI2014] 数表 - 莫比乌斯反演 - 树状数组
- bzoj3529 [Sdoi2014]数表(莫比乌斯反演+树状数组)
- 【bzoj3529】[Sdoi2014]数表 线性筛法+树状数组+莫比乌斯反演+数论分块
- 【莫比乌斯反演】[BZOJ3529]数表
- 【BZOJ3529】数表,莫比乌斯反演+BIT
- BZOJ3529 [Sdoi2014]数表 【莫比乌斯反演】
- [莫比乌斯反演+数状数组] BZOJ3529: [Sdoi2014]数表
- 3529: [Sdoi2014]数表 莫比乌斯反演+树状数组
- 3529: [Sdoi2014]数表|莫比乌斯反演|树状数组
- BZOJ 3529: [Sdoi2014]数表 数学 + 莫比乌斯反演 + 取模优化 + 线性筛 + 树状数组
- BZOJ 3529 数表(莫比乌斯反演+BIT)
- 【BZOJ】】【P3529】【Sdoi2014】【数表】【题解】【莫比乌斯反演+离线+树状数组】
- Android 动画学习——模糊Bitmap
- memcache方式实现session共享
- B
- 构建乘积数组
- 数据库
- 【BZOJ3529】数表(莫比乌斯反演)(树状数组)(数学)
- Broadcast(广播接收者和发送者)
- 6/23作业:static和final
- Android通过Intent来调用第三方地图
- java学习(2) jdk配置注意事项以及简单知识点
- 【洛谷1855】 榨取kkksc03
- 机器视觉———旋转矩阵的计算(一)
- PAT程序设计考题——甲级1019( General Palindromic Number ) C++实现
- unable to establish loopback connection错误