12 2017 档案
摘要:一.扩展欧几里德(exgcd) 扩展欧几里德的基本形式是a*x+b*y=gcd(x,y) 设 a>b。 1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; 2,ab!=0 时 设 ax1+by1=gcd(a,b); bx2+(a mod b)y2=gcd(b,a mod b); 根据欧
阅读全文
摘要:首先,我们复习一下矩阵乘法。 我们记3个矩阵A(a行b列),B(b行c列),C(a行c列)。我们要计算A*B,并把答案存到矩阵C中。 C[i][j]+=A[i][k]*B[k][j](1<=i<=a,1<=j<=c,1<=k<=b),即新矩阵的第i行第j个元素是原1矩阵的第i行*原2矩阵的第j列得来
阅读全文
摘要:纹波星(stripe) 【题目描述】 Kirby最近要去Ripple Star拜访Ribbon。但是他觉得空手去不太好,所以他决定带一点小礼物。 Kirby有n种颜色的缎带,每种颜色的缎带有ai条,Kirby希望用上所有的缎带来接成一长条来送给Ribbon。为了美观,长条中相邻的两段的颜色不能相同。
阅读全文
摘要:我们可以发现,所有数要么被删,要么+1(-1,0)是某个质数的倍数。 由于整段序列不能全部被删,所以第一个数或者最后一个数一定会被保留。 这里有6种情况c1-1,c1,c1+1,cn-1,cn,cn+1。 考虑对于每一种情况分别处理。设这个数为x 那么其中的每个数都必须被删或者是x的质因数的倍数。
阅读全文
摘要:我们把ai向i连边。样例连出来的图是这样的: 然后,我们可以发现,对于每个节点,它需要和它所有的子节点都比赛一场,然后输给它的父亲节点。 用f[i]表示以i为子树的所有节点全部比赛完需要的最少时间。 如何更新f[i]?第i号节点要和它所有的子节点比赛一场,显然,它应该先和它的子节点所用时间最短的,所
阅读全文