Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj2656 [Zjoi2012]数列(sequence)(递推+高精)

这个递推式如何计算呢,我们注意到不断带入时,始终只有两个数,最后一定会递归到xA0+yA1xA0+yA1xA_0+yA_1的形式,这样答案就是y了。 因此我们不断递归即可,最多O(logn)O(logn)O(logn)次。 需要高精度来实现。 #include <bit...

2018-05-28 18:11:09

阅读数 61

评论数 0

bzoj1197 [HNOI2006]花仙子的魔法(数学+递推)

记f[k][i]f[k][i]f[k][i]表示k维空间i个球最多把空间分为多少部分。 我们有f[k][i]=f[k][i−1]+f[k−1][i−1],f[k][i]=f[k][i−1]+f[k−1][i−1],f[k][i]=f[k][i-1]+f[k-1][i-1], f[k][0]=1...

2018-05-22 22:52:52

阅读数 136

评论数 0

bzoj3930 [CQOI2015]选数(容斥+递推+数论)

首先我们有:在[l,R]中选若干不完全相同的数,他们的gcd<=R-L。反证即可。 我们设f[i]表示gcd恰好为K*i的个数。(选若干不完全相同的数),考虑容斥计算,倒着推即可。 f[i]=(R-L)^n-(R-L)-f[i*j] (R=r/(ki),L=(l-1)/(ki)) 最...

2018-05-06 21:29:03

阅读数 84

评论数 0

bzoj1802 [Ahoi2009]checker(递推)

如果有两个相邻格子都是红色的(除了第一个格子),那么我们可以推出所有格子都可以是红色的。所用步数为f[i]=f[i+1]+f[i+2]或者f[i]=f[i-1]+f[i-2]。那么第一问的答案一定是0,第二问递推一下取最小值即可。如果任意两个相邻格子都不同为红色的话,那么我们就看所有要有棋子的格子...

2018-04-25 10:50:21

阅读数 71

评论数 0

bzoj1089 [SCOI2003]严格n元树(递推+高精)

f[i]表示深度<=i的严格n元树的数目,则我们有 f[i]=f[i−1]n+1f[i]=f[i-1]^n+1 (一个点当根,然后n棵子树分别有f[i-1]种形态,再加上一个只有根的情况) 答案就是f[d]-f[d-1] 需要高精,题目保证答案不超过200位。

2018-04-06 15:04:53

阅读数 65

评论数 0

bzoj1019 [SHOI2008]汉诺塔(递推)

汉诺塔,不过规定了操作的优先级,即唯一确定了你的操作序列。 我们用f[x][i]表示把x柱子上的i个盘子移动到另一个柱子(这应该是唯一的,我们记作g[x][i])所需的步数。 然后考虑f[x][i],先把上面的i-1个挪到g[x][i-1],记作y,然后把i挪到z,这时候有两种情况: 1、g...

2018-03-28 11:33:59

阅读数 93

评论数 0

bzoj1002 [FJOI2007]轮状病毒(矩阵树定理+递推+高精度)

关于矩阵树定理,见论文:portal 关于递推式推导,见:portal 我们可以得到f[n]=3∗f[n−1]−f[n−2]+2f[n]=3*f[n-1]-f[n-2]+2,需要高精度。

2018-03-18 23:50:24

阅读数 171

评论数 0

bzoj5195 [Usaco2018 Feb]Directory Traversal(树+递推)

首先处理出选1做当前目录的答案,然后可以直接递推得到选儿子y做当前目录的答案,f[y]=f[1]−(len[y]+1)∗sz[y]+3∗(n−sz[y])f[y]=f[1]-(len[y]+1)*sz[y]+3*(n-sz[y])。复杂度O(n)O(n) 其中sz[y]表示y的子树中的叶子个数,...

2018-03-04 14:40:09

阅读数 143

评论数 0

poj1737 Connected Graph(计数,组合数学,递推,高精)

求n个点的连通图的个数f[n],带标号。有两种做法。 1.直接搞出f[n]的递推式。 f[n]=∑k=1n−1f[k]∗f[n−k]∗Ck−1n−2∗(2k−1)f[n]=\sum\limits_{k=1}^{n-1}f[k]*f[n-k]*C_{n-2}^{k-1}*(2^k-1) 如何理...

2018-01-14 12:44:55

阅读数 290

评论数 0

poj3463 Sightseeing(最短路计数+次短路计数)

求最短路的个数和比最短路大1的路的个数。可以写堆优化Dijstra,统计最短路个数和次短路个数,然后判断次短路是否是比最短路大1即可。松弛时讨论一下最小和次小的更新。

2017-11-14 13:10:11

阅读数 190

评论数 0

NOIP模拟10.31 R2

2016提高D2 A.组合数问题。AC B.蚯蚓 水了60 C.愤怒的小鸟。。写过了。。结果还是被卡了精度5分。

2017-10-31 20:27:48

阅读数 223

评论数 0

NOIP模拟9.14

2011提高D2 A.计算系数,组合数求法还是没看。。用的dp也是醉了。因为输入的a,b没取余,丢掉了20分。值得注意。 B.聪明的质检员。二分答案+线段树nlog^2n,70分,T了6个点。线段树再写得好一点可以拿到90分。正解 二分答案+前缀和。是啊,线段树都想到每次重建一颗了,怎么就想不...

2017-09-14 22:24:38

阅读数 122

评论数 0

vijos1067 Warcraft III 守望者的烦恼(矩阵倍增)

f[i]=f[i-1]+f[i-2]+…+f[i-k].根据递推式构造出转移矩阵trans,trans.mat[1][n]表示f[i]。初始时f[0]=1.这便是矩阵倍增的真正用处了。。。

2017-08-10 23:27:09

阅读数 372

评论数 0

luogu1096 Hanoi双塔问题【2007提高】(递推+高精)

#include <cstdio> #include <cstring> #define ll long long int const N=1000; int n; struct bigint{ int a[N],len; bigint(){ ...

2017-08-08 23:10:06

阅读数 195

评论数 0

bzoj1677 [Usaco2005 Jan]Sumsets 求和(递推)

考虑当前数i,如果i是个奇数,那么他的分解数中有1,那么在i-1的所有可能分解后面都加上个1即可得到i的所有可能分解。 如果i是个偶数,那么分两种情况: 1.如果分解数中有1,那么在i-1的所有可能分解后面都加上个1即可得到这种情况下i的所有可能分解。 2.分解数中没有1,则每个分解数一定都...

2017-08-05 23:36:19

阅读数 199

评论数 0

poj1050 To the Max(最大子矩阵和)

一维的我们做过了,详见: http://blog.csdn.net/icefox_zhx/article/details/76439281 二维的基本一样。。就是把第i行到第j行绑在一起做,预处理出每一列的前缀和,sum[k][i]表示第k列,前i行的和。O(n3)O(n^3)

2017-08-04 13:00:53

阅读数 195

评论数 0

luogu1115 最大子段和(递推/分治)

一直记着之前得到的能接着连下去的最大值tmp,始终更新答案ans。

2017-07-31 15:04:57

阅读数 263

评论数 0

luogu1002【2002普及】过河卒(递推)

递推。

2017-07-29 16:28:50

阅读数 401

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭