BZOJ3529: [Sdoi2014]数表(莫比乌斯反演,离线)
Description
Input
Output
对每组数据,输出一行一个整数,表示答案模2^31的值。
Sample Input
4 4 3
10 10 5
Sample Output
148
解题思路:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 typedef long long lnt; 5 const int N=300010; 6 struct int_2{int a,b;bool friend operator < (int_2 x,int_2 y){if(x.a!=y.a)return x.a<y.a;return x.b<y.b;}}F[N]; 7 int prime[N]; 8 int miu[N]; 9 bool vis[N]; 10 int cnt; 11 int line[N]; 12 struct qust{ 13 int n,m,a; 14 int no; 15 int ans; 16 }q[N]; 17 int lowbit(int x) 18 { 19 return x&(-x); 20 } 21 void update(int pos,int v) 22 { 23 while(pos<N) 24 { 25 line[pos]+=v; 26 pos+=lowbit(pos); 27 } 28 return ; 29 } 30 int query(int pos) 31 { 32 int ans=0; 33 while(pos) 34 { 35 ans+=line[pos]; 36 pos-=lowbit(pos); 37 } 38 return ans; 39 } 40 void gtp(void) 41 { 42 miu[1]=1; 43 for(int i=2;i<N;i++) 44 { 45 if(!vis[i]) 46 { 47 prime[++cnt]=i; 48 miu[i]=-1; 49 } 50 for(int j=1;j<=cnt&&prime[j]*i<N;j++) 51 { 52 int x=i*prime[j]; 53 vis[x]=true; 54 if(i%prime[j]==0) 55 { 56 miu[x]=0; 57 break; 58 } 59 miu[x]=-miu[i]; 60 } 61 } 62 for(int i=1;i<N;i++) 63 { 64 for(int j=i;j<N;j+=i) 65 F[j].a+=i; 66 F[i].b=i; 67 } 68 return ; 69 } 70 bool cmp(qust x,qust y) 71 { 72 return x.a<y.a; 73 } 74 bool cmq(qust x,qust y) 75 { 76 return x.no<y.no; 77 } 78 int main() 79 { 80 gtp(); 81 int T; 82 scanf("%d",&T); 83 for(int i=1;i<=T;i++) 84 { 85 scanf("%d%d%d",&q[i].n,&q[i].m,&q[i].a); 86 q[i].no=i; 87 } 88 std::sort(q+1,q+T+1,cmp); 89 std::sort(F+1,F+N); 90 for(int i=1,j=1;i<=T;i++) 91 { 92 for(;j<N&&F[j].a<=q[i].a;j++) 93 { 94 for(int k=F[j].b;k<N;k+=F[j].b) 95 update(k,F[j].a*miu[k/F[j].b]); 96 } 97 int n=q[i].n,m=q[i].m; 98 if(n>m) 99 std::swap(n,m); 100 for(int u=1,v;u<=n;u=v+1) 101 { 102 v=std::min(n/(n/u),m/(m/u)); 103 q[i].ans+=(query(v)-query(u-1))*(n/u)*(m/u); 104 } 105 } 106 std::sort(q+1,q+T+1,cmq); 107 for(int i=1;i<=T;i++) 108 printf("%d\n",q[i].ans&(0x7fffffff)); 109 return 0; 110 }
转载于:https://www.cnblogs.com/blog-Dr-J/p/10161596.html
BZOJ3529: [Sdoi2014]数表(莫比乌斯反演,离线)相关推荐
- BZOJ3529: [Sdoi2014]数表(莫比乌斯反演 树状数组)
题意 题目链接 Sol 首先不考虑\(a\)的限制 我们要求的是 \[\sum_{i = 1}^n \sum_{j = 1}^m \sigma(gcd(i, j))\] 用常规的套路可以化到这个形式 ...
- [BZOJ3529][Sdoi2014]数表
[BZOJ3529][Sdoi2014]数表 试题描述 有一张N×m的数表,其第i行第j列(1 < =i < =n,1 < =j < =m)的数值为能同时整除i和j的所有自然数 ...
- BZOJ 3529: [Sdoi2014]数表 莫比乌斯
3529: [Sdoi2014]数表 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1879 Solved: 949 [Submit][Statu ...
- bzoj3529: [Sdoi2014]数表
%%%Po姐姐 https://wenku.baidu.com/view/fbec9c63ba1aa8114431d9ac.html [题意] 见原题 [题解] 一个数对(x,y)的公约数必定是其最大 ...
- (每日一题)P3312 [SDOI2014]数表(经典莫比乌斯反演 + 树状数组维护离线询问)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.11 莫反 P3312 [SDOI2 ...
- 【BZOJ3529】数表,莫比乌斯反演+BIT
传送门 思路: 复习一下莫比乌斯反演 好像是数论入门题,然后我做了近一天-- 式子是这么化没错 n≤mn≤m ∑i=1n∑j=1m[σ(gcd(i,j))≤a]σ(gcd(i,j)) \sum^n_{ ...
- P3312 [SDOI2014]数表(离线 + 树状数组前缀和优化)
P3312 [SDOI2014]数表 推式子 ∑i=1n∑j=1mσ(gcd(i,j))∑d=1nσ(d)∑i=1nd∑j=1md[gcd(i,,j)==1]∑d=1nσ(d)∑d=1ndμ(k)nk ...
- BZOJ 3529: [Sdoi2014]数表
二次联通门 : BZOJ 3529: [Sdoi2014]数表 Latex的公式写起来略麻烦... 设$\LARGE F(x)=\sum_{d|x} \lfloor \dfrac xd \rfloor ...
- 莫比乌斯反演--懵逼反演系列
反演的定义 设有数论函数f(n),g(n)f(n),g(n)f(n),g(n),其中g(n)g(n)g(n)已知 且f(n),g(n)f(n),g(n)f(n),g(n)满足关系g(n)=∑i=0na ...
最新文章
- apollo分布式配置中心原理
- php tp 支付宝 支付,php实现的支付宝网页支付功能示例【基于TP5框架】
- jQuery扩展实现复选框批操作
- 野生前端的数据结构基础练习(6)——集合
- 长城汽车申请“哈弗单身狗”、“哈弗奶狗”、“哈弗溜狗”等商标
- grafana的前端技术_Grafana开发环境搭建
- SyntaxError: Missing parentheses in call to 'print' 这个错误原因是Python版本问题
- 三种典型的博弈论问题(巴什博奕、威佐夫博奕、尼姆博奕)
- 前端计算机英语单词,解决文件命名,变量命名头皮发麻,单词超多1700个前端专属单词,css常用命名单词【起名字太烦了全背下来内卷吧小伙伴大前端时代来临了】
- 概率论与数理统计(陈希孺)笔记2.1
- Postman调接口时获取Chrome浏览器Cookie数据携带发送
- 几种比较好用的连接PostgreSQL的客户端
- 【软件工程Ⅱ】作业二 |分布式版本控制系统Git的安装与使用
- 群同态和群同构的区别_顾沛《抽象代数》1.4群的同态与同构习题解答
- 系统容量评估和性能保障
- 设备间子系统的工程技术
- Cisco WLC和瘦ap的配置
- vue服务端渲染——项目搭建、开发、生产环境的部署、浏览渲染、SEO优化
- win10下深度linux系统怎么安装,u深度win10pe安装win10系统教程
- 5款好用的mysql客户端
热门文章
- python后端设计_Python后端设计模式
- 小学校园计算机兴趣小组,小学计算机兴趣小组活动记录文本.doc
- android 任意剪切view,Android 任意View切圆角
- Java内存五大区_一:jvm的五大内存区(内存结构)
- qt设置边框颜色_Qt开源作品14-导航按钮控件
- python删除列表空格_python 删除列表里所有空格项的方法总结
- 大数据要学javaweb吗_大数据是私有财产吗?
- git实现审核功能_使用 Pull Request 功能进行代码审查
- oracle之 监听器无法启动的几个原因总结
- Android通讯录查询篇--ContactsContract.Data 二