Review Before THUWC2020
组合计数
「THUPC2018」好图计数 / Count
- 挖掘"好图"所具有的性质——连通好图数等于非连通好图数
- 转化所求,所有好图 = 2 * 连通好图数
- 列出递推式,应用无标号计数的套路,方案数出现在指数上
- 搞出生成函数,应用多项式技巧,求对数后求导,再拆开观察每一项
- 简化式子
- 观察式子的卷积形式,一般可能会用到分治NTT
概率期望
「PKUWC2018」猎人杀
- 思考暴力,转化题意——改"死亡"为"标记"(重选无效)
- 考虑容斥——枚举在1号之后死的人的集合T
- 列出并简化式子,发现式子只和T中所有人的权值和有关
- 发现权值和只有1e5,可以先用背包求某一个和的方案数
- 发现可以用多项式表达,加一个哈夫曼树优化卷积的合并顺序,2只log走掉
多项式
「PKUSC2018」神仙的游戏
- 观察性质和部分分,推出几个结论,给出一些启发性做法
- 考虑枚举border的长度,列出贡献式子
- 发现可以用卷积来优化一下
- 直接上NTT
「PKUSC2018」真实排名
- 观察性质,推出几个naive的结论
- 分类讨论,利用小结论可以直接做
- 不需要优化
数据结构
计算几何
「PKUSC2018」PKUSC
- 转化题意——根据期望的线性性,转为求每个点的贡献区间
- 考虑一般情况的贡献区间,找到关键——以原点为圆心过该点的圆和多边形的交
- 深入一般性做法,找到圆与多边形的所有交点,极角排序后去重
- 统计贡献,关键是判断每两个相邻点之间的线段在多边形内/外——一般简单多边形,射线法解决(不能用叉积)
- 考虑特殊情况,圆与多边形无交点,一种贡献为0,一种贡献为1。
- 更特殊的情况,点(0, 0)需要特殊考虑(有关题意中边界的开闭问题)
动态规划
「NOI2017」泳池
- 打出暴力(指数级/劣一点的dp)
- 定义一个优良的dp状态,列出dp式子
- 观察dp转移/bm打表找规律/猜测
- 发现是一个低次多项式,用Cayley-Hamilton解决
- 注意一些边界情况/简单情况
注意板子的鲁棒性考场上是否能快速准确实现
「PKUSC2018」星际穿越
- 打出暴力
- 观察该图论模型,发现一些性质以及走法的最优性
- 观察部分分,思考合理做法——预处理出一个可能有用的dp转移数组
- 通过转化简化询问,讨论一些情况,将询问与预处理的dp联系起来
- 发现优化途径——倍增
- 用相似的思想优化询问,省掉一个二分——直接二进制拆分
「PKUWC2018」随机算法
- 打出暴力并优化,期望得到不错的分数
- 找到一个优良的dp状态,列出转移方程
- 对于复杂的转移考虑是否不重不漏且合法转移(至少要是个DAG)
- 注意枚举顺序和方向
「PKUSC2018」最大前缀和
- 观察性质——最大前缀和的位置一定满足从该位置开始的后缀和最大值小于等于0
- 以前缀和最大的点作为分段点,前一段满足当前和等于前缀最大值,后一段满足前缀最大值小于0(注意不能等于,否则会重复计数),乘法原理计算两段贡献
- 状压dp解决
需要强化部分:
数据结构
主席树
线段树合并 loj2537. 「PKUWC2018」Minimax
线段树分治 loj534. 「LibreOJ Round #6」花团
X 非旋treap
莫队 loj6504. 「雅礼集训 2018 Day5」Convex
多项式
分治NTT
多项式全家桶 556. 「Antileaf's Round」咱们去烧菜吧
线性递推
动态规划
维护图像
图论
双连通分量
虚树
差分约束 loj2436. 「SCOI2011」糖果
其他
X 线性规划
计算几何 6437. 「PKUSC2018」PKUSC