蓝桥杯笔记
文章平均质量分 53
spruce^_^
这个作者很懒,什么都没留下…
展开
-
算法笔记
算法竞赛备赛搜索篇dfs搜索深度优先搜索,沿着一条路找到底,其实也是最暴力的方法,采用函数递归的方式进行逐个搜索。适用题目:走地图模板代码:void dfs(int x, int value){ if(x == value){ return; } for(int i = 0; i < n; i++){ dfs(x+a[i], value); }}bfs搜索宽度优先搜索,每一步都是再向外扩散,直到所有的格子都被遍历到,或者遍历到结果格子。采用队列的方式进行处理。原创 2021-03-19 15:42:08 · 157 阅读 · 0 评论 -
二分边界问题小结
最近做到有二分的题目,发现对二分边界的地方的处理理解的很模糊。这里来总结一下二分的几种边界处理情况:1、求最大值的最小值问题这种问题最后的取值为左端点。代码如下:while(left < right){ int mid = (left+right)>>1; if(mid > key){ right = mid; }else{ left = mid + 1; }}//最后取值为左端点的值int res = le原创 2021-03-07 19:47:11 · 145 阅读 · 0 评论 -
二维前缀和笔记
二维前缀和主要用来求一个矩形区域内的数量和。如下图所示,我们假设dp[i][j]为矩形 (1,1)到(i, j)之间区域的面积,则:dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]+mp[i][j]其中mp[i][j]为(i, j)点的大小,少掉了一个蓝色部分的区域,这里就需要加上mp[i][j]。以上步骤用来构建二维前缀和。然后根据实际情况来进行运用,以下以计蒜客中的天上的星星这个题为例:题目中给出的区间是一个矩形区域,让我们求这个矩形区域中星原创 2021-03-03 13:46:12 · 204 阅读 · 0 评论