高精度
文章平均质量分 76
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ3028 食物
跟xuruifan小犇学习了生成函数,感觉好神啊对于一个数列a1,a2,a3,a4....,其生成函数就是a1+a2*x+a3*x^2+a4*x^3.....对于一种物品,造一个序列,如果这种物品可以选x个,那么第x项就是1,否则就是0,对这个序列求生成函数把所有生成函数相乘,次数为n的项的系数就是选一共n个物品的方案数,因为多项式相乘之后如果两个生成函数里两项次数分别为x,y,那么结原创 2016-05-24 18:50:23 · 687 阅读 · 0 评论 -
BZOJ2822 [AHOI2012]树屋阶梯
设f[i]表示i个阶梯的方案数,考虑你第一个踩上去的阶梯,他的高度一定为1,可以取1~i的长度,若其长度为j,搭在这一块上边的部分的方案数为f[j-1],不在上边部分的方案与f[i-j]一一对应(砍掉最底下一行),于是就是卡特兰数,质因数分解之后高精即可#include#include#include#include#include#include#include#include原创 2016-05-25 20:37:57 · 827 阅读 · 0 评论 -
BZOJ3907 网格
首先从(0,0)走到(n,m)的方案数是C(n+m,n),然后我们用总方案减去不合法的,不穿过y=x相当于不经过y=x+1,所以用从(-1,0)出发到(n,m)的方案减去从(-1,0)出发到(n,m)不经过y=x+1的方案考虑第一步就往上走的话有C(n+m,m-1)种方案都是不合法的,第一步向右的不合法方案对称之后与第一步向上走的一一对应,所以用C(n+m+1,n+1)减去2*C(n+m,m-原创 2016-06-18 16:03:48 · 962 阅读 · 0 评论 -
BZOJ2656 [Zjoi2012]数列(sequence)
当n是偶数的时候一直除,直到n是奇数,这样的话n可以分成两个相邻的数的和,把两个相邻的数都分解一次之后还是相邻的两个数的和,所以记录一下相邻的两个数每个被加了多少次,直到一个数是0一个数是1就出答案了#include#include#include#include#include#include#include#include#include#include#include原创 2016-07-06 08:16:27 · 1195 阅读 · 0 评论 -
BZOJ1111 [POI2007]四进制的天平Wag
这种题号的题我之前竟然一直没做……先转成四进制,假设下标小的代表低位,下标大的代表高位那么问题就是让你把这个四进制数表示成两个四进制数的差,使得这两个四进制数各位上的数的和最小,并求方案数f[i]表示想表示出前i位最少要多少个砝码g[i]表示想表示出前i位,并且第i位在做减法的时候向第i+1位借了1的方案数转移很简单写代码的时候思路有点混乱,于是参照了一下claris的代码原创 2017-05-04 19:37:23 · 433 阅读 · 0 评论