摘要: 考虑如果没有个数的限制,那么就是一个完全背包,所以先跑一个完全背包,求出没有个数限制的方案数即可。 因为有个数的限制,所以容斥一下:没有1个超过限制的方案=至少0个超过限制-至少1个超过限制+至少2个超过限制-至少3个超过限制+至少4个超过限制 如何求上面的方案数?有限制时,把$c[i]$这个硬币取 阅读全文
posted @ 2019-06-02 23:20 LuitaryiJack 阅读(221) 评论(0) 推荐(1)
摘要: 一,鸽巢原理的证明 1.定义: 若有$n$个鸽巢和$k*n+1$只鸽子,所有的鸽子都进入鸽巢,那么至少有一个巢中有$k+1$只鸽子(n,k≥0)。 2.证明(反证法): 若每个鸽巢中的鸽子数都不大于$k$,则总鸽子数$<=kn$,与已知矛盾。得证。(其实挺显然的吧,,,qwq) 二,小应用 1.Ra 阅读全文
posted @ 2019-06-02 22:53 LuitaryiJack 阅读(892) 评论(0) 推荐(0)
摘要: 由于有$n$个数,所以有$n+1$个前缀和(第一个是$0$) 所以所有前缀和中必定有一组数是$mod \space n$下同余的。 所以找出来再输出就ok了。。 2019.06.02 阅读全文
posted @ 2019-06-02 22:30 LuitaryiJack 阅读(251) 评论(0) 推荐(0)
摘要: 好吧这题很水。。。可是我没想到正解。。。 题意:求n!有多少位。 正解:斯特林公式。 直接放代码。。。 然后是暴力: 2019.06.02怕不是失了智qwq 阅读全文
posted @ 2019-06-02 22:26 LuitaryiJack 阅读(236) 评论(0) 推荐(0)
摘要: 可以发现,整个数列构成一个树形结构,并且是个完全二叉堆(小根堆)。 并且这个堆的形态在给定$n$后是固定的,第1个位置上显然只能放1。 对子树的根来说,他自己是所分得的数集中最小的那个,所以从剩下$sz[i]-1$个数字中,挑一些填满左子树的节点,剩下填右子树,相当于继续向下分配数集,由于只有数字的 阅读全文
posted @ 2019-06-02 22:18 LuitaryiJack 阅读(223) 评论(0) 推荐(0)
摘要: 真是菜到爆炸。。。。容斥写反(反正第一次写qwq) 题意:$n-1$个公司,每个公司可以连一些边,求每个边让不同公司连的生成树方案数。 矩阵树定理+容斥原理(注意到$n$不是很大) 枚举公司参与与否的状态,每次重构矩阵,把参与连边的公司可以连的边写在矩阵中,然后求出方案。 代码中的$Gauss()$ 阅读全文
posted @ 2019-06-02 22:03 LuitaryiJack 阅读(121) 评论(0) 推荐(0)