随笔分类 -  基础算法

摘要:如题,这是数学推式子中很重要的思想 容斥 常规容斥 常用容斥统计方法为:设f(S),g(S)两组相反的概念(一定选--可以选,全部合法--钦定不合法等),有: \[g(S)=\sum_{T\subseteq S}f(T)\iff f(S)=\sum_{T\subseteq S}(-1)^{| 阅读全文
posted @ 2024-11-11 11:14 Zhone_lb 阅读(15) 评论(0) 推荐(0) 编辑
摘要:P3813 [FJOI2017]矩阵填数 常见思路:最大值为v方案数=最大值v的方案数最大值<v的方案数 但是在这里有多个矩形,直接做会有问题,因为非法方案应该是存在一个矩形最大值<v,看n的范围想到容斥 上公式:\(\display 阅读全文
posted @ 2024-11-11 11:07 Zhone_lb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:背包k优解 题目链接 类似次短路算法,记录前k优解,转移即可 由于一个状态只会有2个来源(j,jw[i]),问题变成了两个单调序列的前k大问题,直接不断取队头比较即可 时间复杂度O(nkV),我是直接暴力排序+卡常过的(别用STL,好慢) 练习 #6 阅读全文
posted @ 2024-11-11 10:56 Zhone_lb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:种类并查集 P2024 [NOI2001] 食物链 类似于超级源点,把x+n丢进集合里,相当于x对这个集合作了标记,方便维护 细节 注意xy,对于yz,会有zx 这里会出现自己和自己连边的情况,用fa[rt]=0的写法需要特判 阅读全文
posted @ 2024-11-02 17:18 Zhone_lb 阅读(8) 评论(0) 推荐(0) 编辑
摘要:双向宽搜 题目 P4459 [BJOI2018] 双人猜数游戏 思维性较强的题目 假设我们想知道Alice当前是否知道了数值,设fi,j,k为数j,k在第i轮的人是否知道,那么有几种知道方向(对于Alice): 1、自己前面就知道了,即fi2,j,k=1 阅读全文
posted @ 2024-10-31 17:25 Zhone_lb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:前缀和 背包问题 对于一个背包问题,有q个询问,求第i个物品一定不取时的最大价值。 思路: 1、当i=n时,只做1~i-1的背包即可; 2、当i=1时,考虑翻转背包,变成情况1; 3、一般情况下,考虑对每个点做前后缀背包,然后O(n)合并即可(合并方法类似廊桥 阅读全文
posted @ 2024-10-31 17:09 Zhone_lb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:CDQ分治 先分后治,先统计各区间的贡献,再统计前区间对后区间(后对前)的贡献 例题:逆序对         平面最近点对 [P3810]【模板】三维偏序(陌上花开) 有 n 个元素,第 i 个元素有 ai,bi,ci 三个属性,设 f(i) 阅读全文
posted @ 2024-10-31 17:03 Zhone_lb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:原理 通过证明局部最优解可以得出全局最优解,从而 O(n) 解决问题。 常用数学归纳法证明贪心正确性。 模板 取 xy,计算f(x先于y),f(y先于x),令f(x先于y)>f(y先于x) ,解 阅读全文
posted @ 2024-10-31 17:02 Zhone_lb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:二分查找 多用于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库函数 注意以下返回的都是指针 # 阅读全文
posted @ 2024-10-31 16:55 Zhone_lb 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示