09 2017 档案
摘要:给你一个序列s,求区间[l,r]使得gcd(s[l]~s[r])*(r-l+1)最大,输出这个最大值,n=2*g[i],所以整个g数组长度不会超过lg k#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl...
阅读全文
摘要:给你一个序列s,求区间[l,r]使得gcd(s[l]~s[r])*(r-l+1)最大,输出这个最大值,n=2*g[i],所以整个g数组长度不会超过lg k#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl...
阅读全文
摘要:完成斐波那契进制下的加法运算第一位为1,第二位为2,依次类推。。这里其实很简单,只是要考虑一下进位即可首先连续两位不为零直接向前进位即可但是不能解决问题,因为可能出现一个位上面的值大于1那么我们可以这样做,设连续的四位分别为:0,0,2,0那么我们可以将其变成1,0,...
阅读全文
摘要:完成斐波那契进制下的加法运算第一位为1,第二位为2,依次类推。。这里其实很简单,只是要考虑一下进位即可首先连续两位不为零直接向前进位即可但是不能解决问题,因为可能出现一个位上面的值大于1那么我们可以这样做,设连续的四位分别为:0,0,2,0那么我们可以将其变成1,0,...
阅读全文
摘要:A国有n个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一路径。现在有火车在城市a,需要经过m个城市。火车按照以下规则行驶:每次行驶到还没有经过的城市中在m个城市中最靠前的。现在小A想知道火车经过这m个城市后所经过的道路数量。很显然的树剖题目嘛,加上个区间打标...
阅读全文
摘要:A国有n个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一路径。现在有火车在城市a,需要经过m个城市。火车按照以下规则行驶:每次行驶到还没有经过的城市中在m个城市中最靠前的。现在小A想知道火车经过这m个城市后所经过的道路数量。很显然的树剖题目嘛,加上个区间打标...
阅读全文
摘要:有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。这是一个经典的主席树的题目,对于每个节点i开一颗线段树存储[1,i]区间内每个数最后出现的位置,那么查找的时候直接再树上类似平衡树找最小即可#pragma GCC o...
阅读全文
摘要:有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。这是一个经典的主席树的题目,对于每个节点i开一颗线段树存储[1,i]区间内每个数最后出现的位置,那么查找的时候直接再树上类似平衡树找最小即可#pragma GCC o...
阅读全文
摘要:JIH的玩具厂设立以来,发展了一张销售关系网。这张网以玩具厂为总代理(根),构成一颗树。每个节点都代表一个客户,且每个节点都有重要度ai。JIH想将这些客户划成若干类别,当然同一类的客户重要度相差太大总是不妥。所以JIH决定先进行市场调研。JIH会选择两个客户X,从X...
阅读全文
摘要:JIH的玩具厂设立以来,发展了一张销售关系网。这张网以玩具厂为总代理(根),构成一颗树。每个节点都代表一个客户,且每个节点都有重要度ai。JIH想将这些客户划成若干类别,当然同一类的客户重要度相差太大总是不妥。所以JIH决定先进行市场调研。JIH会选择两个客户X,从X...
阅读全文
摘要:Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链。为了方便,我们用A0,A1...An-1 这n 个正整数描述它们。一个基因Ax 可以进化为序列中在它之后的基因Ay。这个进化的复杂度,等于Ax | Ax+1...| Ay的值...
阅读全文
摘要:Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链。为了方便,我们用A0,A1...An-1 这n 个正整数描述它们。一个基因Ax 可以进化为序列中在它之后的基因Ay。这个进化的复杂度,等于Ax | Ax+1...| Ay的值...
阅读全文
摘要:对一个由n个点组成的图形连续作平移、缩放、旋转变换。相关操作定义如下:Trans(dx,dy) 表示平移图形,即把图形上所有的点的横纵坐标分别加上dx和dy;Scale(sx,sy) 表示缩放图形,即把图形上所有点的横纵坐标分别乘以sx和sy;Rotate(θ,x0,...
阅读全文
摘要:对一个由n个点组成的图形连续作平移、缩放、旋转变换。相关操作定义如下:Trans(dx,dy) 表示平移图形,即把图形上所有的点的横纵坐标分别加上dx和dy;Scale(sx,sy) 表示缩放图形,即把图形上所有点的横纵坐标分别乘以sx和sy;Rotate(θ,x0,...
阅读全文
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][...
阅读全文
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][...
阅读全文
摘要:一个文本压缩后由若干个单元组成,每个单元由3部分组成:1.正文(小写字母组成的字符串)2.若干个”*”,表示正文的又重复了几次3.单元的结尾符号”$”,显然,对于同一文本,压缩后的表示方法不唯一,但是为了方便,我们要求你采用压缩后字符串最短的压缩方法,如果有多种压缩方...
阅读全文
摘要:一个文本压缩后由若干个单元组成,每个单元由3部分组成:1.正文(小写字母组成的字符串)2.若干个”*”,表示正文的又重复了几次3.单元的结尾符号”$”,显然,对于同一文本,压缩后的表示方法不唯一,但是为了方便,我们要求你采用压缩后字符串最短的压缩方法,如果有多种压缩方...
阅读全文
摘要:题意:多重背包,每次对于第i个物品不能选的情况求最大获益,n,m#include#includeusing namespace std;int w[10000],v[10000],t[1000],N=0;int n,m,f[10010][1001],g[10010][...
阅读全文
摘要:题意:多重背包,每次对于第i个物品不能选的情况求最大获益,n,m#include#includeusing namespace std;int w[10000],v[10000],t[1000],N=0;int n,m,f[10010][1001],g[10010][...
阅读全文
摘要:小包有N个球和A个盒子。球标号为0到N-1,盒子编号为0到A-1。标号为x的球放在下标为x mod A的盒子里。然后他得到了B个新盒子,编号为0到B-1。他想把所有球从旧盒子里面拿出来放到新盒子,标号为x的球放在下标为x mod B的盒子里。对于某个球来说,如果原本放...
阅读全文
摘要:小包有N个球和A个盒子。球标号为0到N-1,盒子编号为0到A-1。标号为x的球放在下标为x mod A的盒子里。然后他得到了B个新盒子,编号为0到B-1。他想把所有球从旧盒子里面拿出来放到新盒子,标号为x的球放在下标为x mod B的盒子里。对于某个球来说,如果原本放...
阅读全文
摘要:他首先尝试排成m1行,发现最后多出来a1个同学;接着他尝试排成m2行,发现最后多出来a2个同学,……,他们尝试了n种排队方案,但每次都不能让同学们正好排成mi行。于是小刘寻求同事小明的帮助,以便给同学们排好队型。但小刘来去太匆忙,忘记告诉小明他们班有多少人了。没办法,...
阅读全文
摘要:他首先尝试排成m1行,发现最后多出来a1个同学;接着他尝试排成m2行,发现最后多出来a2个同学,……,他们尝试了n种排队方案,但每次都不能让同学们正好排成mi行。于是小刘寻求同事小明的帮助,以便给同学们排好队型。但小刘来去太匆忙,忘记告诉小明他们班有多少人了。没办法,...
阅读全文
摘要:Alice和Bob正在悄悄地给对方发信息,信息都是由英文小写字母组成的,他们约定,所有的字母都得经过一个字母表进行变换,以防泄漏。另一方面John却在监听。John发现,Alice和Bob通信的时候,总是先发送加密后的密文,然后紧接着发送原文。但是Alice和Bob似...
阅读全文
摘要:Alice和Bob正在悄悄地给对方发信息,信息都是由英文小写字母组成的,他们约定,所有的字母都得经过一个字母表进行变换,以防泄漏。另一方面John却在监听。John发现,Alice和Bob通信的时候,总是先发送加密后的密文,然后紧接着发送原文。但是Alice和Bob似...
阅读全文
摘要:两个等长的由大写英文字母构成的字符串a和b,从a中选择连续子串x,从b中选出连续子串y。定义函数f(x,y)为满足条件xi=yi(1j 情况是对称的,所以贡献是(n-i+1)*(n-j+1)所以对于a,我们维护一个前缀和sf[i][c]表示所有j满足j=i且a[j]=...
阅读全文
摘要:两个等长的由大写英文字母构成的字符串a和b,从a中选择连续子串x,从b中选出连续子串y。定义函数f(x,y)为满足条件xi=yi(1j 情况是对称的,所以贡献是(n-i+1)*(n-j+1)所以对于a,我们维护一个前缀和sf[i][c]表示所有j满足j=i且a[j]=...
阅读全文
摘要:题意:给一个字符串,对于每个位置i,求出最短满足的子串[l,r]使得i∈[l,r]且这个子串只出现一次,输出这个子串的长度神(shui)题,AC后看了下别人的code发现全都是后缀数组(难看)可能是因为我太弱了所以只想到SAM的算法做法:建立SAM,求出parent树...
阅读全文
摘要:题意:给一个字符串,对于每个位置i,求出最短满足的子串[l,r]使得i∈[l,r]且这个子串只出现一次,输出这个子串的长度神(shui)题,AC后看了下别人的code发现全都是后缀数组(难看)可能是因为我太弱了所以只想到SAM的算法做法:建立SAM,求出parent树...
阅读全文
摘要:做法可以参考这篇:jzoj2581,注意求phi(i)的方法,需要用到sqrt(i)的暴力分解算法#includebool vis[40010];int w[20010],t=0;long long phi(int x){ long long S=x; for(int...
阅读全文
摘要:做法可以参考这篇:jzoj2581,注意求phi(i)的方法,需要用到sqrt(i)的暴力分解算法#includebool vis[40010];int w[20010],t=0;long long phi(int x){ long long S=x; for(int...
阅读全文
摘要:题意:求ΣΣgcd(i,j)(i∈[1,n],j∈[i,n])我们令A[i]为Σgcd(i,j)(j∈[1,i])那么很显然的,gcd(i,j)为i的因数,而当gcd(i,j)=1时,这样的j显然就有φ(i)个当gcd(i,j)=2时,这样的j就有φ(i/2)个(j=...
阅读全文
摘要:题意:求ΣΣgcd(i,j)(i∈[1,n],j∈[i,n])我们令A[i]为Σgcd(i,j)(j∈[1,i])那么很显然的,gcd(i,j)为i的因数,而当gcd(i,j)=1时,这样的j显然就有φ(i)个当gcd(i,j)=2时,这样的j就有φ(i/2)个(j=...
阅读全文
摘要:1、给定 y、z、p,计算y^z mod p的值; 2、给定 y、z、p,计算满足xy≡z(mod p)的最小非负整数 ; 3、给定y、z、p,计算满足y^x≡z(mod p)的最小非负整数 。第一问不说,第二问请看 同余方程 主要说第三问第三问是经典的离散对数(...
阅读全文
摘要:1、给定 y、z、p,计算y^z mod p的值; 2、给定 y、z、p,计算满足xy≡z(mod p)的最小非负整数 ; 3、给定y、z、p,计算满足y^x≡z(mod p)的最小非负整数 。第一问不说,第二问请看 同余方程 主要说第三问第三问是经典的离散对数(...
阅读全文
摘要:给定一个N,求出所有1到N之间的x,使得x^2=1(mod N)。将这个式子变形(x-1)(x+1)=0(MOD P) ,那么就可以枚举P的每一对因数(a,b),我们把方程化为ax*by=P*T(T为任意常数)那么这里ax,by必须满足ax-by=2,这个可以用扩展g...
阅读全文
摘要:给定一个N,求出所有1到N之间的x,使得x^2=1(mod N)。将这个式子变形(x-1)(x+1)=0(MOD P) ,那么就可以枚举P的每一对因数(a,b),我们把方程化为ax*by=P*T(T为任意常数)那么这里ax,by必须满足ax-by=2,这个可以用扩展g...
阅读全文
摘要:两个玩家轮流从上倒下取带权硬币,玩家1先取,可以从上面取1个或2个硬币,下一轮的玩家可以取的硬币数量最少为1个,最多为上一个玩家取的数量的2倍,硬币全部取完比赛结束。问玩家1的最优策略下,可以取到硬币的权值和最大为?动态规划,设f[i][j]为上一次取到第i个硬币,上...
阅读全文
摘要:两个玩家轮流从上倒下取带权硬币,玩家1先取,可以从上面取1个或2个硬币,下一轮的玩家可以取的硬币数量最少为1个,最多为上一个玩家取的数量的2倍,硬币全部取完比赛结束。问玩家1的最优策略下,可以取到硬币的权值和最大为?动态规划,设f[i][j]为上一次取到第i个硬币,上...
阅读全文
摘要:给你一个无向图,请你选择最少的关键点使得每一个顶点i,与i联通的关键点有奇数个(其实就是把全部灯关掉,按一下按钮可以反转灯的状态)范围n#include#define l(i) (1ll f;int n,m,tot,ans=1tot){ if(s1==l(n+1)-...
阅读全文
摘要:给你一个无向图,请你选择最少的关键点使得每一个顶点i,与i联通的关键点有奇数个(其实就是把全部灯关掉,按一下按钮可以反转灯的状态)范围n#include#define l(i) (1ll f;int n,m,tot,ans=1tot){ if(s1==l(n+1)-...
阅读全文
摘要:Alice收到一份来自美国的生日礼物:一个崭新的双链火车,火车有N节车厢,依次编号为1到N,你可以在该玩具上进行两种操作: A:把X号车厢移到Y号车厢前面; B:把X号车厢移到Y号车厢后面。 Alice收到礼物后很兴奋,玩了数小时,记录下每一步的操作以至于他能还...
阅读全文
摘要:Alice收到一份来自美国的生日礼物:一个崭新的双链火车,火车有N节车厢,依次编号为1到N,你可以在该玩具上进行两种操作: A:把X号车厢移到Y号车厢前面; B:把X号车厢移到Y号车厢后面。 Alice收到礼物后很兴奋,玩了数小时,记录下每一步的操作以至于他能还...
阅读全文
摘要:给你一个字符串,要你求出最长的至少出现两次的子串这个题呢,很明显是SA啦 是SAM的裸题!帅气简介高大上的SAM出现啦(比难看的SA好到不知道哪里去了)#include#include#include#define N 400010using namespace ...
阅读全文
摘要:给你一个字符串,要你求出最长的至少出现两次的子串这个题呢,很明显是SA啦 是SAM的裸题!帅气简介高大上的SAM出现啦(比难看的SA好到不知道哪里去了)#include#include#include#define N 400010using namespace ...
阅读全文
摘要:给出N个D维空间的点。求出曼哈顿距离最大的两个点的曼哈顿距离。两个点(x1,x2,,,xD)、(X1,X2,,,XD)的曼哈顿距离被定义为|x1-X1| +|x2-X2|+... +|xD-XD|。 d#include#includeusing namespace s...
阅读全文
摘要:给出N个D维空间的点。求出曼哈顿距离最大的两个点的曼哈顿距离。两个点(x1,x2,,,xD)、(X1,X2,,,XD)的曼哈顿距离被定义为|x1-X1| +|x2-X2|+... +|xD-XD|。 d#include#includeusing namespace s...
阅读全文
摘要:给出一个数列a1,a2,。。。,an和K,P。 设Si,j = ai + ai+1::: + aj Answer = min{Si,j mod P|Si,j mod P>=K},其中i=K}非空。先预处理出取模后的前缀和s,那么问题变成min(s[j]-s[...
阅读全文
摘要:给出一个数列a1,a2,。。。,an和K,P。 设Si,j = ai + ai+1::: + aj Answer = min{Si,j mod P|Si,j mod P>=K},其中i=K}非空。先预处理出取模后的前缀和s,那么问题变成min(s[j]-s[...
阅读全文
摘要:过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目.精确地说,他们有P (1 #include#define INF 0x7f7f7f7fint n,m,f[310][1010],w[310],v[310],ans=1b)a=b; }int...
阅读全文
摘要:过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目.精确地说,他们有P (1 #include#define INF 0x7f7f7f7fint n,m,f[310][1010],w[310],v[310],ans=1b)a=b; }int...
阅读全文
摘要:给你一个序列s和n个限制,(a,b)表示s[a]#includeusing namespace std;set f[10010];int n,m,h,k,s[10010];int main(){ scanf("%d%d%d%d",&n,&k,&h,&m); s[0]=...
阅读全文
摘要:给你一个序列s和n个限制,(a,b)表示s[a]#includeusing namespace std;set f[10010];int n,m,h,k,s[10010];int main(){ scanf("%d%d%d%d",&n,&k,&h,&m); s[0]=...
阅读全文
摘要:这里简单说一下rabin-karp其实就是字符串hash算法,不理解的可以自行百度对于一颗树,我们可以将其变为一个括号序列,对这个括号序列作rabin-karp,让后就可以轻松判断同构了是不是很简单细节不多说,有一点必须注意:因为子树是无序的,所以dfs时必须对子树排...
阅读全文
摘要:这里简单说一下rabin-karp其实就是字符串hash算法,不理解的可以自行百度对于一颗树,我们可以将其变为一个括号序列,对这个括号序列作rabin-karp,让后就可以轻松判断同构了是不是很简单细节不多说,有一点必须注意:因为子树是无序的,所以dfs时必须对子树排...
阅读全文
摘要:若两个数的最大公约数为1,则这两个数互质。现在给出一个正整数N(1int N,M,K;int main(){ scanf("%d",&N); K=M=N; for(int i=2;1ll*i*i1) M=M/N*(N-1); printf("%lld\n",1ll*K...
阅读全文
摘要:若两个数的最大公约数为1,则这两个数互质。现在给出一个正整数N(1int N,M,K;int main(){ scanf("%d",&N); K=M=N; for(int i=2;1ll*i*i1) M=M/N*(N-1); printf("%lld\n",1ll*K...
阅读全文
摘要:关于扩展gcd其实没有必要搞懂,背下来就好了如果不会的自行学习对于方程ax=b(mod M),我们可以将其化简成为ax+My=b,让后用扩展gcd求解当b|r=gcd(a,M)时,方程有r个解,否则无解,对于有解的情况,每个解为用gcd求出的x乘上b/r+k*(M/r...
阅读全文
摘要:关于扩展gcd其实没有必要搞懂,背下来就好了如果不会的自行学习对于方程ax=b(mod M),我们可以将其化简成为ax+My=b,让后用扩展gcd求解当b|r=gcd(a,M)时,方程有r个解,否则无解,对于有解的情况,每个解为用gcd求出的x乘上b/r+k*(M/r...
阅读全文
摘要:正解:同余方程对于每对野人i,j,解方程(p[i]-p[j])=c[j]-c[i](mod Answer) 若在min(l[i],l[j])以内有解则不行(++ANS)否则可以#include#includeusing namespace std;int c[20],...
阅读全文
摘要:正解:同余方程对于每对野人i,j,解方程(p[i]-p[j])=c[j]-c[i](mod Answer) 若在min(l[i],l[j])以内有解则不行(++ANS)否则可以#include#includeusing namespace std;int c[20],...
阅读全文

浙公网安备 33010602011771号