随笔分类 - 基础算法
摘要:如题,这是数学推式子中很重要的思想 容斥 常规容斥 常用容斥统计方法为:设 两组相反的概念(一定选--可以选,全部合法--钦定不合法等),有: \[g(S)=\sum_{T\subseteq S}f(T)\iff f(S)=\sum_{T\subseteq S}(-1)^{|
阅读全文
摘要:P3813 [FJOI2017]矩阵填数 常见思路:最大值为 方案数 最大值 的方案数 最大值 的方案数 但是在这里有多个矩形,直接做会有问题,因为非法方案应该是存在一个矩形最大值 ,看 的范围想到容斥 上公式:\(\display
阅读全文
摘要:背包k优解 题目链接 类似次短路算法,记录前 优解,转移即可 由于一个状态只会有 个来源( ),问题变成了两个单调序列的前 大问题,直接不断取队头比较即可 时间复杂度 ,我是直接暴力排序+卡常过的(别用 ,好慢) 练习 #6
阅读全文
摘要:种类并查集 P2024 [NOI2001] 食物链 类似于超级源点,把 丢进集合里,相当于 对这个集合作了标记,方便维护 细节 注意 ,对于 ,会有 这里会出现自己和自己连边的情况,用 的写法需要特判
阅读全文
摘要:双向宽搜 题目 P4459 [BJOI2018] 双人猜数游戏 思维性较强的题目 假设我们想知道Alice当前是否知道了数值,设 为数 在第 轮的人是否知道,那么有几种知道方向(对于Alice): 1、自己前面就知道了,即
阅读全文
摘要:前缀和 背包问题 对于一个背包问题,有 个询问,求第 个物品一定不取时的最大价值。 思路: 1、当 时,只做1~i-1的背包即可; 2、当 时,考虑翻转背包,变成情况1; 3、一般情况下,考虑对每个点做前后缀背包,然后 合并即可(合并方法类似廊桥
阅读全文
摘要:CDQ分治 先分后治,先统计各区间的贡献,再统计前区间对后区间(后对前)的贡献 例题:逆序对 平面最近点对 [P3810]【模板】三维偏序(陌上花开) 有 个元素,第 个元素有 三个属性,设
阅读全文
摘要:二分查找 多用于dp优化 源码 //自己写的时候推荐把边界放宽一点 while(r-l>1) { //最后一个小于k的位置 int mid=l+r>>1; if(a[mid]<x) l=mid; else r=mid-1; } if(a[r]<x) l=r; STL库函数 注意以下返回的都是指针 #
阅读全文