训练日程
√ 代表赛中AC
· 代表赛中尝试但未AC
O 代表赛后AC
- 代表题目不存在
? 代表对题目/标程存疑
× 代表题目/标程有问题
团队摸鱼
date | contest | rank | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2021/05/02 | gym103049 | 143/307 | √ | √ | √ | O | √ | √ | O | √ | - | - | - | - | |||
2021/05/01 | gym103055 | 148/644 | √ | O | √ | O | √ | √ | O | √ | √ | √ | - | - |
脑瘫问题首发
- $s.earse(地址)$
- 递归是用全局$vetor$
- 线段树$if(!tag[pos])$
- 可撤销并查集可以采用保持合并前所有信息
- 多项式 $如果 while(ML<n+m-1)$ ,$n,m为项数$,如果$ML\leq n+m$
$n,m$为最高项系数,$sqrt,Inv….$等倒入的是项数(有多少项)。 - 多项式合并时注意限制项数。
- 线段树注意$lazy$的初始化
- 公式化的离散化线段变成左开右闭
- 直径看清楚是否需要$-1$
- 虚树注意清空该清空的
- 多维$dp$转移注意边界
- 后缀树上$lcp(i,j)=len(lca(i,j))$
- 全排列二项式定理,也要考虑单独概率考虑
- 随机化使用$std::mt19937 rnd(std::chrono::steady_clock::now().time_since_epoch().count());$
- 树链剖分注意$top[rt]$,注意$w[dfn[x]]$
- $KruskalTree重构树$开两倍空间。
- 负数向下取整$>>1$
- $KruskalTree重构树$是特胖叶子节点$g[x].size()\leq 1$!!,可以减少特胖
- 字典序表示先字母大小再长度
- 二分图的最大团=补图的最大独立集。,最大独立集=所有顶点数-最小顶点覆盖,最小顶点覆盖等于二分图的最大匹配。
- Boruvka算法快。
- 李超线段树$\max,\min$ 里面都要仔细改
- 点分治的时候记住情况应该清空的数据结构,要记住有$a[rt]$这个点也要加入。
- map.count!!!!!