代码风格

结构体成员函数定义写在结构体内,实现写在结构体外
保持API连贯,一个namespace内传参到不同的函数时,同一个变量名不要有多个意思
自底向上实现代码,降低假的风险

一些技巧

图论

  • Tarjan求强连通分量(scc)时,scc的出栈顺序就是拓扑序的倒序
  • 求二分图匹配的必经边和可行边时,可以先随便构造一组最大匹配,然后让匹配边向右,非匹配边向左求强连通分量。
    • 当且仅当某条边两端不在同一个强连通分量内时,它是必经边(在构造的最大匹配内)或非可行边(不在构造的最大匹配内)。