摘要:
题意:N组询问,每次给出a b c d k,求满足a≤x≤b,c≤y≤d且gcd(x,y)=k的数对(x,y)的数量。 题解: 设fA,B,k表示1≤x≤A,1≤y≤B内合法数对的数量,那么答案就是fb,d-fa,d-fb,c+fa,c。设FA,B,i=i|gcd(x,y)(i=tk,1≤x≤A,1 阅读全文
摘要:
题意:求[1,N!]中与M!互质的数的个数对R取余,多组询问,模数相同 题解: 如果a与b互质,显然kb+a依然与b互质,因此答案就是\[\frac{{N!}}{{M!}}\varphi (M!) = N!\prod\limits_{{p_i}|M!} {\frac{1}{{{p_i}}}} \] 阅读全文
摘要:
题意:分别求所有质因数都不同且质因数个数为奇数个、偶数个的数的欧拉函数和,和质因数存在重复的数的欧拉函数和 题解: 说书题……前面一大串就是用一种比较有趣的语言定义欧拉函数。 显然我们只需要求出所有军人ans1和政客ans2,然后用求得的M减去独立数和就是学者的独立数和了。 由于善良的出题人已经帮我 阅读全文
摘要:
题意:给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 题解:我们枚举素数p,后面的过程和BZOJ2705一样,不同的是我们限制x>=y,假定得到的答案是ans,那么实际上答案是2*ans-1(加上x<=y,x==y重复计算了) #include <cmath> # 阅读全文
摘要:
题意:求$\sum\limits_{i = 1}^N {\gcd (i,N)}$ 题解: 枚举gcd,那么仅当一个数a与N/i互质时,gcd(a*i,N)==i,这样的数有phi(N/i)个。 由于我们在计算gcd=i时,顺便可以算出gcd=N/i的答案,因此只需要枚举sqrt(N)个数即可。 #i 阅读全文
摘要:
题意:求[a,b]中含有6 8或因子含有6 8的数的个数 题解: 我们用容斥的思想,先求出1->b的方案数,再减去1->a-1的方案数 首先我们一遍DFS求出所有由6和8组成的数的数量 然后将搜索得到的所有数排序,如果存在a%b==0,那就把a给删了(打个标记)。 由于得到的数非常少,所以我们可以枚 阅读全文
摘要:
题意:求$\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^M {f(i,j)} } $,其中f(i,j)=(0,0)与(i,j)连线上点的数量 题解: 如果一个点(x',y')在(0,0)与(x,y)的连线上,则有gcd(x',y')==gcd(x,y)。因此f 阅读全文
摘要:
题意:给1到n的一个排列,按照某种顺序依次删除m个元素,每次删除一个元素之前统计整个序列的逆序对数。 题解: 离线倒着做,每次加入一个节点后新增的逆序对数量就是其左边大于它的数的个数(左边数的总数-左边小于它的数的个数)+右边小于它的数的个数 用树状数组维护求和,对于树状数组中每个节点v所对应的区间 阅读全文
摘要:
题意:给定一个数列,维护:1、在a和b之间插入c 2、询问[a,b]中的第c大 题解: 权值线段树套区间线段树 外层的权值线段树中每个节点如果维护[L,R]这个区间,那么该节点所对应的线段树维护的就是[L,R]这些数在每个区间里出现了几次,也就是说如果外层线段树的某个节点维护[L,R],其所对应的内 阅读全文
摘要:
题意:初始时给定一个没有边的图,维护:1、添加一条边 2、修改单点权 3、询问u到v的点权和 题解:因为只有加边的操作,所以可以用LCT来维护,剩下的就是裸的操作了。 #include <cstdio> #include <cstring> #include <cstdlib> #include < 阅读全文