凸包(凸壳??)
感觉自己数学菜得要死,尤其是对于直线斜率等这些东西……
大概~
点凸包:静态(那个什么水平序、极角序的算法(大爱水平序))、动态(离线CDQ,在线平衡树(建议splay,有时候set也可以))、完全动态(mmp)
(一般找点的话要么斜率二分要么点三分,有别的方法???)
边凸包:lc线段树
bzoj1492:[NOI2007]货币兑换Cash **动态凸包优化dp(我写的替罪羊,感觉要死,羡慕splay)
bzoj2300:[HAOI2011]防线修建 *动态凸包水题(set水之)
bzoj3533:[Sdoi2014]向量集 **分块建立静态凸包(之所以不写树套树,是因为各方面都不优秀,尤其是码量方面,而不是不行)
bzoj2388:旅行规划 ***分块建立静态凸包(把斜率搞成高度导致理解错误并且打错)(理解不透彻的下场就是丢人)
bzoj4570:[Scoi2016]妖怪 ***直接对勾函数二分(卡常致死)/建立凸包(笛卡尔坐标系里的方程理解为x与y的转化关系,从而可以看出来其描述的就是用直线卡凸包)
难点在于发现几何意义诶
bzoj2402:陶陶的难题II ***分数规划(正常人)/分析一三象限两凸包卡出斜率最大直线的性质(我)+二分+树剖+对于线段树每个节点建立其对应区间的静态凸包+信仰(或者分析一下)log^4
bzoj3672:[Noi2014]购票 ***可持久化栈+分块/线段树 or 顺序化的点分治 or 树链剖分
感觉是一道点分治的好题,然而我并没有打点分治……
这个点分治不是像往常一样到每个点都暴力计算答案,而是到每个点都进行像CDQ那样的计算元素之间的贡献,而且他还加上了像CDQ优化dp一样的顺序化……