随笔分类 -  矩阵快速幂

摘要:显然答案为Σkb·(n-k)a·C(n-k+1,k)。并且可以发现ΣC(n-k,k)=fibn。但这实际上没有任何卵用。 纯组合看起来不太行得通,换个思路,考虑一个显然的dp,即设f[i][j][0/1]为前i为选了j个1其中第i位是0/1的方案数。这样当然能求出答案,复杂度O(n2)。 注意到ab 阅读全文
posted @ 2018-12-14 00:20 Gloid 阅读(215) 评论(0) 推荐(0)
摘要:特殊矩阵的幂同样满足费马小定理。 阅读全文
posted @ 2018-12-08 13:04 Gloid 阅读(234) 评论(0) 推荐(0)
摘要:设f[i][j]为第i天到达j号城市的方案数,转移显然,答案即为每天在每个点的方案数之和。矩乘一发即可。 阅读全文
posted @ 2018-11-27 21:56 Gloid 阅读(195) 评论(0) 推荐(0)
摘要:显然每一行棋子的某种放法是否合法只与上一行有关,状压起来即可。然后n稍微有点大,矩阵快速幂即可。 阅读全文
posted @ 2018-10-20 23:31 Gloid 阅读(246) 评论(0) 推荐(0)
摘要:显然当x中没有相邻的1时该式成立,看起来这也是必要的。 于是对于第一问,数位dp即可。第二问写出dp式子后发现就是斐波拉契数列,矩阵快速幂即可。 阅读全文
posted @ 2018-09-21 18:22 Gloid 阅读(200) 评论(0) 推荐(0)
摘要:由二项式定理,(m+1)k=ΣC(k,i)*mi。由此可以构造矩阵转移,将mi*ik全部塞进去即可,系数即为组合数*m。复杂度O(m3logn),因为大常数喜闻乐见的T掉了。 #include<iostream> #include<cstdio> #include<cmath> #include<c 阅读全文
posted @ 2018-09-18 13:39 Gloid 阅读(225) 评论(0) 推荐(0)
摘要:考虑对一个串如何分割能取得最大值。那么这是一个经典的线段覆盖问题,显然每次取右端点尽量靠前的串。于是可以把串放在AC自动机上跑,找到一个合法串后就记录并跳到根。 然后考虑dp。设f[i][j]表示前i位走到AC自动机上j节点的概率,枚举下个字符即可转移。同时记录此时期望伤害,找到合法串就统计入答案。 阅读全文
posted @ 2018-09-04 00:09 Gloid 阅读(138) 评论(0) 推荐(0)
摘要:考虑暴力,那么有f(n)=(f(n-1)*10digit+n)%m。注意到每次转移是类似的,考虑矩阵快速幂。首先对于位数不同的数字分开处理,显然这只有log种。然后就得到了f(n)=a·f(n-1)+b形式的递推式,可以矩阵快速幂。注意这里的b虽然是变化的,但每次变化量相同,给矩阵加一维就好了。 阅读全文
posted @ 2018-09-01 13:52 Gloid 阅读(163) 评论(0) 推荐(0)
摘要:由数据范围容易想到矩阵快速幂和状压。 显然若要满足一辆公交车的相邻站台差不超过p,则每相邻p个站台中每辆车至少经过一个站台。可以发现这既是必要的,也是充分的。 开始的时候所有车是相邻的。考虑每次把一辆公交车塞到前方第一个未到达的站台。这个时候公交车之间是没有区别的,因为只要保证每相邻p个站台每辆车都 阅读全文
posted @ 2018-08-11 15:27 Gloid 阅读(155) 评论(0) 推荐(0)