【反演复习计划】【bzoj3529】数表
Orz PoPoQQQ大爷
按照他ppt的解法,这题可以划归到之前的题了OrzOrz
跪wy写的题解(Stealth Assassin)https://www.luogu.org/wiki/show?name=%E9%A2%98%E8%A7%A3+P3312
#include<bits/stdc++.h>
#define N 100005
#define fi first
#define sc second
using namespace std;
typedef long long ll;
int Q,maxn,cnt,prime[N],mu[N],d[N];
int c[*N],ans[N],vis[N];
pair<int,int> f[N];
struct Query{int n,m,a,id;}q[N];
bool operator<(Query x,Query y){return x.a<y.a;}
inline int lowbit(int x){return (x&(-x));}
inline void add(int x,int val){
for(int i=x;i<=maxn;i+=lowbit(i))c[i]+=val;
}
inline int query(int x){
int ans=;
for(int i=x;i;i-=lowbit(i))ans+=c[i];
return ans;
}
inline void calcmu(){
cnt=;memset(vis,,sizeof(vis));mu[]=;
for(int i=;i<=maxn;i++){
if(vis[i]){prime[++cnt]=i;mu[i]=-;}
for(int j=;j<=cnt;j++){
int t=prime[j]*i;if(t>maxn)break;
vis[t]=;
if(i%prime[j]==){mu[t]=;break;}
mu[t]=-mu[i];
}
}
for(int i=;i<=maxn;i++)
for(int j=i;j<=maxn;j+=i)f[j].fi+=i;
for(int i=;i<=maxn;i++)f[i].sc=i;
}
inline void work(int x){
int id=q[x].id,n=q[x].n,m=q[x].m;
for(int i=,j=;i<=n;i=j+){
j=min(n/(n/i),m/(m/i));
ans[id]+=(n/i)*(m/i)*(query(j)-query(i-));
}
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
Q=read();
for(int i=;i<=Q;i++){
q[i].n=read();q[i].m=read();q[i].a=read();q[i].id=i;
if(q[i].n>q[i].m)swap(q[i].n,q[i].m);
maxn=max(maxn,q[i].n);
}
calcmu();
sort(q+,q+Q+);sort(f+,f+maxn+);int now=;
for(int i=;i<=Q;i++){
while(now+<=maxn&&f[now+].fi<=q[i].a){
++now;
for(int j=f[now].sc;j<=maxn;j+=f[now].sc)
add(j,f[now].fi*mu[j/f[now].sc]);
}
work(i);
}
for(int i=;i<=Q;i++)printf("%d\n",ans[i]&0x7fffffff);
return ;
}
【反演复习计划】【bzoj3529】数表的更多相关文章
- 【反演复习计划】【51nod1594】Gcd and Phi
现在感觉反演好多都是套路QAQ…… #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int n,c ...
- 【反演复习计划】【COGS2432】爱蜜莉雅的施法
也是一个反演. 第一次手动推出一个简单的式子,激动.jpg 原题意思是求:$Ans=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\phi(gcd(i,j))$随 ...
- 【反演复习计划】【bzoj1011】zap-queries
快三个月没做反演题了吧…… 感觉高一上学期学的全忘了…… 所以还得从零开始学推式子. # bzoj1011 标签(空格分隔): 未分类 --- 原题意思是求以下式子:$Ans=\sum\limits_ ...
- 【反演复习计划】【bzoj4407】于神之怒加强版
#include<bits/stdc++.h> #define N 5000010 #define yql 1000000007 using namespace std; typedef ...
- 【反演复习计划】【COGS2433】&&【bzoj3930,CQOI2015选数】爱蜜莉雅的冰魔法
同bzoj3930. (日常盗题图) #include<bits/stdc++.h> #define N 1000010 #define yql 1000000007 #define ll ...
- 【反演复习计划】【COGS2431】爱蜜莉雅的求助
出题人怎么这么不认真啊==明明官方译名是爱蜜莉雅…… 而且我们爱蜜莉雅碳是有英文名哒!是Emilia.你那个aimiliya我实在是无力吐槽…… 不过抱图跑23333首先这很像约数个数和函数诶!但是唯 ...
- 【反演复习计划】【bzoj2154】Crash的数字表格
膜拜cdc……他的推导详细到我这种蒟蒻都能看得懂! 膜拜的传送门 所以我附一下代码就好了. #include<bits/stdc++.h> #define N 10000005 #defi ...
- 【反演复习计划】【bzoj3994】DZY loves maths
这题大概就是提取一下d,然后就跟前面的题目差不多了. #include<bits/stdc++.h> #define N 10000005 using namespace std; typ ...
- 【反演复习计划】【bzoj3994】约数个数和
首先要用数学归纳证明一个结论,不过因为我实在是懒得打公式了... 先发代码吧. #include<bits/stdc++.h> #define N 50005 using namespac ...
随机推荐
- python基础训练营05
任务五 时长:2天 1.file a.打开文件方式(读写两种方式) b.文件对象的操作方法 c.学习对excel及csv文件进行操作 2.os模块 3.datetime模块 4.类和对象 5.正则表达 ...
- 容器基础(五): 实现一个简单容器sdocker
在前面几部分的基础上, 我们更新一下代码,实现一个简单容器 sdocker. sdocker目录构成 linux: # tree . ├── Makefile ├── cpu-test.c # 由cp ...
- 主外键多表查询demo
https://www.cnblogs.com/DragonFire/p/6949767.html mySQL练习-主外键多表查询 MySQL练习-主外键多表查询 练习: 1.建立表关系: 请创建如下 ...
- Collections常用方法总结
public class CollectionsTest { public static void main(String[] args) { List<Integer> list = n ...
- 简单dp总结
### 简单dp总结 本文是阅读<挑战程序设计第二版>其中关于dp章节所作总结.将简要描述dp的部分知识. 一.dp是什么? dp在计算机专业学科中全称是动态规划(dynamic prog ...
- Redis数据类型及操作详解
Redis数据库,是nosql的一种.与传统关系型数据库(如mysql.sqlserver等)相比,他在处理大数据量上相当有优势,扩展性和可用性高,这是传统型数据库所达不到的. Redis是一个key ...
- ARC078 D.Fennec VS. Snuke(树上博弈)
题目大意: 给定一棵n个结点的树 一开始黑方占据1号结点,白方占据n号结点 其他结点都没有颜色 每次黑方可以选择黑色结点临近的未染色结点,染成黑色 白方同理. 最后谁不能走谁输. 题解: 其实简单想想 ...
- 使用es6一行搞定文字溢出省略号
使用的是es6中扩展字符串方法参考地址 padStart(),padEnd() 使用padStart() 两个参数padStart(字符串最小长度,用来补全的字符串): 例如 let str = '1 ...
- size用法小记
By francis_hao Feb 14,2017 列出二进制文件各个段的大小和总大小 概述 选项解释 -A -B --format=compatibility 选择显示的格式, -A = - ...
- i=i+1与i+=1的区别及效率(Java)
原博客地址 在做个java优化的PPT时,看到了i=i+1与i+=1的区别,在这之前还真没想到那么细. 1.x=x+1,x+=1及x++的效率哪个最高?为什么? x=x+1最低,因为它的执行如下. ( ...