1962年CCF成立
1984年NOI首次举办
1995年noip首次举办
2019年CSP非专业组首次举办
前序、中序、后序遍历:先访问当前节点,或在中间访问,或在最后访问
前序遍历即为DFS序
哈夫曼编码:哈夫曼编码,主要目的是根据使用频率来最大化节省字符(编码)的存储空间。
https://blog.csdn.net/qq_36653505/article/details/81701181
例题:
[TG2011]
现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( )。
两种组成方式:300+400,得到700,然后和600拼接,得到1300,然后和原来的700拼接,长度为3
如果600和700先拼接,那么长度将仅为2
Catalan Numbers
设h(n)为catalan数的第n+1项,令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)h(n-1)+h(1)h(n-2) + ... + h(n-1)*h(0) (n>=2)
则有h(n)=C(2n,n)/(n+1)
https://blog.csdn.net/wookaikaiko/article/details/81105031
康托展开(应用于全排列)
公式:设一个全排列为{a1,a2,...an}
则rank=a1(n-1)!+a2(n-2)!+...+an*1
逆康托展开:逆运用,
首先对于rank,我们先除以(n-1)!,然后商是几即为前面已经排了几个
之后用余数除以(n-2)!,以此类推