[专题总结]组合数学

好恶心的一个专题!

首先大致总结一下求组合数的方法:

暴力(复杂度为min(m,n-m))同时乘大数以及小数的逆元,其余部分分子分母相消。

lucas:适用于模数小的时候,复杂度logpn

杨辉三角:适用于m较小n不太大的时候,而且组合数要用到很多次。

大概挨着讲一讲每道题,顺便总结经验。 

 

排队

上来先来一个高精组合数把你弄懵。抛下一句“注意答案可能很大”就走了

然而公式其实挺简单。想到题目里有一个额外的2,提出来单独考虑就行了。

高精运算*=加&会快一些。

 

Perm 排列计数

感觉很像二叉树(线段树)不对么?

递归它。把数列往下搜左右两半搜,子问题是一样的,把所有数分配给左右两边。组合数干它。

父结点比左右儿子大就可以了。也就是父结点拿走最大的数,剩下的随便分配给儿子们。

取模少了一个括号91分调半天。。

注意本题与地精部落的联系。可惜我没联系上,浪费了很多时间。

 

集合计数:

不简单。

题目及题解>>tap here

 

DZY Loves Maths II:

他每次出场都能招致许多麻烦!

题目及题解>>tap here

 

虔诚的墓主人:

tdcp(数论里的数据结构狂模)告诉我要打线段树我还不信。。。我错了

但是暴力可以AC的啊。。。

题目及题解>>tap here

 

地精部落:

milkfun mikufun提醒我之后我才发现它与第二题的联系。

但是思考的过程值得纪念。

题目及题解>>tap here

 

看电影(movie):

打表找规律的又一个经典题目。我太弱啊啊啊没办法哪。

手动打表4节课,思考规律8分钟。(完了,文化课走神暴露了)

题目及题解>>tap here

 

曹冲养猪

CRT模板题,不讲。(在礼物那道题的题解里略提了一下)

 

Strange Way to Express Integers

Emm......ex_CRT模板题,感觉很少会用到,也不讲。

 

礼物:

差不多是ex_Lucas的模板,很重要,细讲了一波。

题目及题解>>tap here

 

古代猪文

接触到的第一个CRT非模板实际应用,这个思想挺重要。

题目还是挺简单的,运用费马小定理对指数取下模就可以。

指数是组合数,但模数是个合数,但并不用ex_Lucas。

那个合数可以唯一分解为4个素数,每个都只出现一次。

在模这四个素数的前提下求出模数,用CRT还原出来就可以了。

 

Per

依次锁定每一个数,其后面所有数字的排序数即为累加的答案。

ex_Lucas模合数。

需要考虑数字有重复,含重复元素的排列数公式咯。

源公式合并同类项,你就会得到一个很简单的式子了。

 

不要忘了组合数专题考试反思(19/7/7)

 

总结:

1)如果没有头绪,打表找规律也是个不错的方法。

1.5)上课手模测试点效率极低。

1.8)物理课找规律效率极高。

2)要经常考虑式子的某些项是否可以合并化简。

3)要会打暴力。因为考试时式子真的不好想。

4)多想想公式的实际含义有很大的帮助。

5)dp结合组合数很可怕,要多练习。

6)数论不一定不会结合数据结构,不要阻塞自己的思想。

 

还是比较有趣的一个专题哪。

posted @ 2019-07-10 15:35  DeepinC  阅读(307)  评论(0编辑  收藏  举报