随笔分类 -  ----组合数学

摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(211) 评论(0) 推荐(0)
摘要:很明显,山峰一定是n那么无论其他的数在n的左边还是右边都对应一种单峰数列ok,答案就是2^(N-1)#include#include#include#define L long long#define M 1000000007using namespace std;L... 阅读全文
posted @ 2017-10-23 18:41 扩展的灰(Extended_Ash) 阅读(126) 评论(0) 推荐(0)
摘要:很明显,山峰一定是n那么无论其他的数在n的左边还是右边都对应一种单峰数列ok,答案就是2^(N-1)#include#include#include#define L long long#define M 1000000007using namespace std;L... 阅读全文
posted @ 2017-10-23 18:41 扩展的灰(Extended_Ash) 阅读(112) 评论(0) 推荐(0)
摘要:十分套路,这种题很明显是单独计算每个元素的贡献来搞的我们发现,对于ti,它最后到n,n的路线有C(2n-i-2,n-2)条而对于每条路线,其值发生的变化都为t[i]*a^(n-i)*b^(n-1)所以贡献就是∑t[i]*a^(n-i)*b^(n-1)*C(2n-i-2... 阅读全文
posted @ 2017-10-12 21:05 扩展的灰(Extended_Ash) 阅读(110) 评论(0) 推荐(0)
摘要:十分套路,这种题很明显是单独计算每个元素的贡献来搞的我们发现,对于ti,它最后到n,n的路线有C(2n-i-2,n-2)条而对于每条路线,其值发生的变化都为t[i]*a^(n-i)*b^(n-1)所以贡献就是∑t[i]*a^(n-i)*b^(n-1)*C(2n-i-2... 阅读全文
posted @ 2017-10-12 21:05 扩展的灰(Extended_Ash) 阅读(174) 评论(0) 推荐(0)
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n... 阅读全文
posted @ 2017-10-02 11:26 扩展的灰(Extended_Ash) 阅读(142) 评论(0) 推荐(0)
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n... 阅读全文
posted @ 2017-10-02 11:26 扩展的灰(Extended_Ash) 阅读(99) 评论(0) 推荐(0)
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][... 阅读全文
posted @ 2017-09-25 21:57 扩展的灰(Extended_Ash) 阅读(94) 评论(0) 推荐(0)
摘要:题意:求在n维空间里,长度为2m且起点和终点重合的简单路径(只能在一维中走)数量显然,我们在计算方案时,每次必然加入在同一维度的,方向相反的行动那么我们令f[i][j][k]表示目前在处理第i维,已经走了2*j步,其中有2*k步在第i维上那么显然,f[i+1][j][... 阅读全文
posted @ 2017-09-25 21:57 扩展的灰(Extended_Ash) 阅读(116) 评论(0) 推荐(0)