随笔分类 -  ----数论

摘要:YJC最近在学习树的有关知识。今天,他遇到了这么一个概念:最近公共祖先。对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。YJC很聪明,他很快就学会了如何求最近公共祖先。他现在想寻找最近公共祖先有什么... 阅读全文
posted @ 2017-11-01 21:17 扩展的灰(Extended_Ash) 阅读(142) 评论(0) 推荐(0)
摘要:我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同我们可以以此将这个图变成一个二分图跑匈牙利算法即可(这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。)#pragma GCC optimize("O3")#pragma G++ optimiz... 阅读全文
posted @ 2017-10-29 19:04 扩展的灰(Extended_Ash) 阅读(91) 评论(0) 推荐(0)
摘要:我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同我们可以以此将这个图变成一个二分图跑匈牙利算法即可(这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。)#pragma GCC optimize("O3")#pragma G++ optimiz... 阅读全文
posted @ 2017-10-29 19:04 扩展的灰(Extended_Ash) 阅读(144) 评论(0) 推荐(0)
摘要:给你一个1~n的排列A,询问一些区间内有多少对x,y使得A[x]|A[y]我们考虑将所有的询问按照r排序,让后分成两部分计算:1.A[i]|A[j] 且i>j2.A[i]|A[j] 且i#include#include#define N 200020using nam... 阅读全文
posted @ 2017-10-26 21:14 扩展的灰(Extended_Ash) 阅读(130) 评论(0) 推荐(0)
摘要:给你一个1~n的排列A,询问一些区间内有多少对x,y使得A[x]|A[y]我们考虑将所有的询问按照r排序,让后分成两部分计算:1.A[i]|A[j] 且i>j2.A[i]|A[j] 且i#include#include#define N 200020using nam... 阅读全文
posted @ 2017-10-26 21:14 扩展的灰(Extended_Ash) 阅读(117) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(149) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(211) 评论(0) 推荐(0)
摘要:若一个数x是平方数,则d(x)为平方数所以就是要考虑有多少对i*j为平方数我们假设,i=p*k^2,那么,j=p*q^2时,i*j为平方数(p不含平方因子,k,q为正整数)所以,我们对于一个i=p*k^2,对应的j就有[√m/p]种我们考虑快速求p,这样对于所有k,i... 阅读全文
posted @ 2017-10-24 20:47 扩展的灰(Extended_Ash) 阅读(119) 评论(0) 推荐(0)
摘要:若一个数x是平方数,则d(x)为平方数所以就是要考虑有多少对i*j为平方数我们假设,i=p*k^2,那么,j=p*q^2时,i*j为平方数(p不含平方因子,k,q为正整数)所以,我们对于一个i=p*k^2,对应的j就有[√m/p]种我们考虑快速求p,这样对于所有k,i... 阅读全文
posted @ 2017-10-24 20:47 扩展的灰(Extended_Ash) 阅读(103) 评论(0) 推荐(0)
摘要:求ΣΣ(N%i)(M%j)(i#define P 1000000007#define L long longL sum(L N){ L ans=N*N%P; for(L i=1,j;i>1)%P*(N/i))%P; } return ans;}int main(){ ... 阅读全文
posted @ 2017-10-23 20:38 扩展的灰(Extended_Ash) 阅读(115) 评论(0) 推荐(0)
摘要:求ΣΣ(N%i)(M%j)(i#define P 1000000007#define L long longL sum(L N){ L ans=N*N%P; for(L i=1,j;i>1)%P*(N/i))%P; } return ans;}int main(){ ... 阅读全文
posted @ 2017-10-23 20:38 扩展的灰(Extended_Ash) 阅读(124) 评论(0) 推荐(0)
摘要:听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N(N >= K)人。于是机智的你想到了一个公平公正的方法决定哪K人去看电影。N个人排成一圈,按顺时针顺序标号为1 - N,每次... 阅读全文
posted @ 2017-10-23 19:38 扩展的灰(Extended_Ash) 阅读(107) 评论(0) 推荐(0)
摘要:听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N(N >= K)人。于是机智的你想到了一个公平公正的方法决定哪K人去看电影。N个人排成一圈,按顺时针顺序标号为1 - N,每次... 阅读全文
posted @ 2017-10-23 19:38 扩展的灰(Extended_Ash) 阅读(119) 评论(0) 推荐(0)
摘要:线段树套分块/主席树!我们考虑到ai,p,q比较小(#include#include#includeusing namespace std;struct dq{ int p,q,k; }; vector w[100010];int f[10010],g[110][10... 阅读全文
posted @ 2017-10-23 19:29 扩展的灰(Extended_Ash) 阅读(161) 评论(0) 推荐(0)
摘要:线段树套分块/主席树!我们考虑到ai,p,q比较小(#include#include#includeusing namespace std;struct dq{ int p,q,k; }; vector w[100010];int f[10010],g[110][10... 阅读全文
posted @ 2017-10-23 19:29 扩展的灰(Extended_Ash) 阅读(97) 评论(0) 推荐(0)
摘要:有这么一个函数满足Σf(d)=n (d|n),给出序列a,求Σf(a[i])首先,大部分人一眼就能看出这个f就是phi吧那么考虑怎么求有phi(p)=p-1(p为质数)phi(ab)=phi(a)phi(b)(gcd(a,b)=1)phi(ka)=kphi(a)(k|... 阅读全文
posted @ 2017-10-21 21:46 扩展的灰(Extended_Ash) 阅读(115) 评论(0) 推荐(0)
摘要:有这么一个函数满足Σf(d)=n (d|n),给出序列a,求Σf(a[i])首先,大部分人一眼就能看出这个f就是phi吧那么考虑怎么求有phi(p)=p-1(p为质数)phi(ab)=phi(a)phi(b)(gcd(a,b)=1)phi(ka)=kphi(a)(k|... 阅读全文
posted @ 2017-10-21 21:46 扩展的灰(Extended_Ash) 阅读(140) 评论(0) 推荐(0)
摘要:srwudi的跳楼机可以采用以下四种方式移动:1、向上移动x层;2、向上移动y层;3、向上移动z层;4、回到第一层。一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不... 阅读全文
posted @ 2017-10-15 17:31 扩展的灰(Extended_Ash) 阅读(155) 评论(0) 推荐(0)
摘要:srwudi的跳楼机可以采用以下四种方式移动:1、向上移动x层;2、向上移动y层;3、向上移动z层;4、回到第一层。一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不... 阅读全文
posted @ 2017-10-15 17:31 扩展的灰(Extended_Ash) 阅读(126) 评论(0) 推荐(0)
摘要:给你n求gcd(i,j)=i xor j的对数(i,jint main(){ int n,A=0; scanf("%d",&n); for(int i=1;i<=n;++i) for(int j=i<<1;j<=n;j+=i) if((i^j)==j-i) ++... 阅读全文
posted @ 2017-10-15 11:19 扩展的灰(Extended_Ash) 阅读(96) 评论(0) 推荐(0)