小trick总结

  • 一个圆上的整点数量不会很多。(Cf AIM TR 5 F)
  • 二分图完美匹配求字典序最小的方案:先一遍匈牙利求出任意一组完美匹配。再跑一遍逐位确定,要求不能修改编号比它小的匹配。(LG 4100)
  • 如果要把多项式的指数模$k$相同的项系数加起来放在一起,可以把该多项式模$x^k - 1$。(LG 5224)
  • 把$n$进行正整数拆分(不同的正整数序列满足和为$n$的个数),直接用闸板法。
  • 一棵树某一个点的度数$-1$就是其$prufer$序列中该点出现的次数。$n$个带标号的点组成$k$个有根树的方案数就是$\binom{n - 1}{k - 1} n^{n - k}$,可以用新建虚点再限制其度数算得;如果要求$1\text{~}k$这$k$个点分别为$k$个树的根,再除以$\binom{n}{k}$就行了。(Cf #539 D)
  • 一个序列的所有区间$gcd$,不同的最多只有$O(nlogn)$个。(可以用固定左端点移动右端点考虑)
  • 链相交的问题可以考虑到总会有一条链的$lca$的会在另一条链上。如果是边相交则可以考虑离$lca$最近的两条边的位置。
  • 求字典序最小的欧拉回路,可以先把所有出边$sort$后直接跑,这是对的。
  • 在$[0,1]$的线段上插入$n-1$个点使其分成$n$条线段,其中最短的线段的长度的期望是$\frac{1}{n^2}$。
  • $dag$上有$Dilworth$定理与其对偶:最长反链=最小链覆盖(注意此处最小链覆盖中链是可以在点或边上相交的);最长链=最小反链覆盖数。
  • 在$dag$的最小链覆盖问题上,如果不允许链点相交,则可以直接建出二分图跑;如果点可以相交,则需要对每一个$i \in [1,n]$连边$(i + n$ -> $i)$,流量为 $inf$。(LOJ 6197)

转载于:https://www.cnblogs.com/Dance-Of-Faith/p/9570615.html

你可能感兴趣的:(小trick总结)