![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
组合数学那本书好厚啊
文章平均质量分 92
stone41123
一名苦逼的OIer,欢迎交朋友。。。
展开
-
洛谷 P2290 [HNOI2004]树的计数(bzoj[1211])
做法:Prufer序列&&Cayley定理&&组合数学(推广) 没学过的可以戳这里看matrix67大佬讲课:经典证明:Prüfer编码与Cayley公式 然后就是对于这个题了。 这里先摘抄一段话: 一个有趣的推广是,n个节点的度依次为D1, D2, …, Dn的无根树共有(n-2)! / [ (D1-1)!(D2-1)!..(Dn-1)! ]个,因为此时Prüfer编码中的数字i恰好原创 2017-09-08 12:15:14 · 280 阅读 · 0 评论 -
[bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
传送门 说是这题叫什么弦图染色,我反正不懂,只是学了这个问题的一种算法,叫最大势算法,就是一开始每个点值为0,每次取出值最大的点,删除它,然后将周围每个没被删除的点的值+1,最后答案就是值的种类。 这样就可以用一个堆来维护,好像还可以用n个链表来维护每个值的所有点,可以做到O(n+m)O(n+m),我反正不想写,太麻烦了(划去) 我的代码:#include<bits/stdc++.h> #de原创 2017-09-20 18:51:03 · 430 阅读 · 0 评论 -
[bzoj1005]:[HNOI2008]明明的烦恼(prufer序列+质因数分解+高精乘)
传送门 首先,原来我写过这个题,然而我用的别人的高精板子,然后就没有然后了。 这个故事告诉我们,千万不要用别人的板子。 好,我们开始。 首先大家都知道prufer序列这个东西吧 (没看过的可以去Matrix67那里听课:http://www.matrix67.com/blog/archives/682) 看完了之后,这个题就是组合数学了。 首先我们声明一些变量: n->节点数原创 2017-11-22 15:19:16 · 299 阅读 · 0 评论 -
扩展CRT&&扩展lucas
直接上板子,这里没有证明,只是提供一个还不错的板子 扩展CRT:#include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> #include<cstdlib> #define ll long long using namespace std; inline int read(){原创 2017-12-22 21:54:42 · 558 阅读 · 0 评论 -
1-1 T1 tree(dp+组合数学)
题目描述 有 n 个点,第 i 个点的限制为度数不能超过 ai。 现在对于每一个 s(1 问从这 n 个点中选出 s 个点组成有标号无根树的方案数。 答案对1004535809取模。 输入输出格式 输入格式: 第一行一个整数表示n。 第二行n个整数a1~an。 输出格式: 一个n个整数,第i个整数表示s=i时的答案。 输入输出样例 输入样例#1: 复制 3 2原创 2018-01-18 12:05:31 · 489 阅读 · 0 评论