递推
Le_ballon_rouge
我是最讨厌、最粗鲁、最无知的人、彻头彻尾的讨厌鬼,任何人遇到我都是一种不幸。我轻视美德、无视美、不了解幸福。
展开
-
CODEVS1039
简单递推。 令f(i,j)表示把数i分为j份的方案数。 显然有f(i,j)=f(i-1,j-1)+f(i-j,j)。 它的意义在于:显然f(i,j)的划分只有两种情况即划分式中有1和无1,有1的情况在f(i-1,j-1)中已被考虑,无一时我们把分解式中所有数都减1,显然被f(i-j,j)所考虑。 代码上的小细节见下。#include <cstdio> #include <cstdlib> #原创 2015-06-29 13:54:42 · 579 阅读 · 0 评论 -
BZOJ1019
传送门:BZOJ1019没有写二维的Dp,理由是不优美。 然后我硬掰出来的递推更不优美。直接说结论吧,以下讨论均设操作序列给定且恒定。 记f(n)f(n)为完成初始盘数为n的游戏所需步数,则f(n)f(n)满足线性递推式f(n)=k×f(n−1)+bf(n)=k\times f(n-1) +b这个结论的证明是比较复杂的。首先注意n≤2n \le 2的情况是平凡的,我们讨论n≥3n \ge 3引理原创 2015-08-11 21:12:24 · 868 阅读 · 0 评论 -
BZOJ1025
传送门:BZOJ1025首先,容易证明解的存在性。 于是排数就等于1回到1,2回到2…所需步数的lcm。然后,容易发现∑ib(i)=n\sum_{i} b(i)=n 其中i取一类步数为b(i)的i,i’,i”…于是问题变成已知k个正整数的和为n,求这k个数可能的lcm的种数。套一个Lagrange唯一分解定理即可。代码上的小细节见下。#include <cstdio> #include <cst原创 2015-08-14 11:47:07 · 934 阅读 · 0 评论