
递推
Lynstery
一只蒟蒻
展开
-
[递推] BZOJ1019: [SHOI2008]汉诺塔
题意题解显然由于有优先级存在,操作序列是唯一的。 我们设g[i][x]g[i][x] 表示一开始有i个盘在x柱,经过一系列操作,他们都到了哪个柱子上。这是唯一确定的。我们再设这个过程的操作方案数为f[i][x]f[i][x]。 这样f[n][0]f[n][0] 就是答案了。(我们用0,1,2表示柱A,B,C) 如何递推呢?联系经典的汉诺塔递推,i是由i-1得来的,我们同样用这样的思路来分析。原创 2017-04-29 11:59:32 · 734 阅读 · 0 评论 -
[递推] BZOJ2656: [Zjoi2012]数列(sequence)
题意 T组询问,每次给定n,输出An。 T<=20, n<=10^100题解这道题容易想太多,其实不用对递推式进行什么处理,只需要用特别的方法记忆化即可。 注意到虽然n的范围大,但真正有用的很少。 例如当n=31时: 有用的节点只有O(logn)个,如果我们能实现记忆化,可以实现logn的复杂度,再搞个高精即可。 但是数字这么大,如何记忆化呢?实际上从上图我们已经可以发现,只需要一对原创 2017-02-16 13:59:11 · 551 阅读 · 0 评论 -
[递推] BZOJ1037: [ZJOI2008]生日聚会Party
题意有n个男孩和m个女孩,排成一个n+m的序列,满足对于任意连续的一段,男孩与女孩的数目之差不超过a。求方案数。 n,m ≤ 150,k ≤ 20题解肯定朝递推的方向思考。如果序列前i个已经合法,现在多填入一个i+1,设男孩为1,女孩为-1,那么只需要考虑所有后缀和的绝对值是否小于等于a即可。 我们的关注点就在所有的后缀和上。每次填入一个数,所有后缀和都将+1-1,且多生成了一个1/-1的后缀原创 2017-02-20 20:35:28 · 446 阅读 · 0 评论 -
[递推] 51nod 算法马拉松25 B. 完美序列
题意如果一个序列的相邻两项差的绝对值小于等于1,那么我们说这个序列是完美的。 给出一个有序数列A,求有多少种完美序列排序后和数列A相同。 n<=30000 每个数<=10^9,每个数出现次数<=100题解首先我们要想到从小到大考虑,不断的把数插入。 这样搞有什么好处呢?当要把i插入时,因为当前序列中所有数都比i小,所以i只能插到相邻两个i-1之间,或者边界有i-1的。 从这个角度,我们就能原创 2017-05-31 08:49:59 · 951 阅读 · 2 评论 -
[递推] HDU6146 Pokémon GO
题意戳这里题解显然要步数最小就是每个格子刚好走一次。 枚举起始位置,然后考虑怎么能怎么走。 大力分类讨论一下可以发现我们只需要知道两个东西就可以了。 一个是 did_i 表示在 2∗i2*i 的网格的右上角,遍历所有的格子一次后停在气势位置下方的方案数。 显然 di=di−1∗2d_i=d_{i-1}*2 . 还有一个是 fif_i 表示在 2∗i2*i 的网格的右上角,遍历所有的格子的方原创 2017-08-26 17:40:20 · 565 阅读 · 0 评论 -
[递推] BZOJ2173:整数的lqp拆分
简单题。考虑每个 fibifib_i 的贡献可得: fi=∑i=1nfibi∗fn−if_i=\sum_{i=1}^n fib_i*f_{n-i} 和斐波那契数有关,肯定考虑递推。然 xjbxjb 推就行了: fi=fn−1+∑i=2nfibi∗fn−i=∑i=2nfibi−1∗fn−i+∑i=2nfibi−2∗fn−1=fn−1+fn−1+fn−2f_i=f_{n-1}+\sum_{i原创 2017-10-31 09:12:59 · 407 阅读 · 0 评论