算法竞赛
文章平均质量分 74
算法竞赛习题总结
Duoluoluos
这个作者很懒,什么都没留下…
展开
-
【习题总结】二分查找与二分答案
可以用双指针,也可以用二分查找,用二分查找更好写。array可以换成set,可以氵掉一些平衡树的题。一个想法是双指针,但是不能保证要保证。二分查找,即查询有序数组中某个数的前驱/后继,后面的数,因为不能做到一一对应,其实维护。的后继对应的指针即可。...原创 2022-08-30 11:27:05 · 162 阅读 · 0 评论 -
【习题总结】枚举题:暴力出奇迹
在入门算法竞赛时,我们最喜欢朴实的枚举。在蓝桥杯中dfs剪枝混分法也很常见,然而当我们初入茅庐,学了记忆话搜索,dp,贪心等基础算法后,朴素的暴力枚举就很少用了。注意到i依次递增,对于同一完全平方数,差值逐级递减,所以枚举完全平方数,若差值越界或重复,完全平方数递减。事实上,对于朴素的暴力枚举,若改变枚举的角度,抑或是挖掘出题目中的性质,即可暴力切题,俗称“暴力出奇迹”。大的最小完全平方数,算出各个差值,再考虑重复的数和未出现的数,枚举修改的决策。2、枚举一个子区间时,可以用几重循环枚举子区间以外的部分。.原创 2022-08-24 00:52:24 · 326 阅读 · 0 评论 -
【习题总结】推公式问题
在算法竞赛问题中,手推公式是一项及其重要的技能,下至签到题,上至高级数学、数据结构、动态规划,都需要扎实的推公式能力。若推出的公式会TLE,要么用其他技巧变换公式,要么用数据结构优化(后面会提及),要么差分/前缀和。编程时,可以将相同元素的列数存放到一起,排序,作为前缀和数组。考虑注意到各个元素的列数可以预处理出来,因此求距离可以采用。查询,其实修改后只会影响重复运算的部分,故用乘法,加上/减去。本文章先从简单题入手,总结常见的推公式思路。朴素的做法是对于每一种元素,枚举每一列/行,作累加,显然会TLE。原创 2022-08-22 17:48:34 · 200 阅读 · 0 评论 -
【习题总结】差分问题
差分,即序列中相邻两数之差,本文章讲解几个经典例题,帮助各位理解差分在算法竞赛中的应用。原创 2022-08-17 21:21:00 · 663 阅读 · 0 评论 -
【题解】最长公共上升子序列
1、问题重述熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列 A和B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。不过,只要告诉奶牛它的长度就可以了。数列 A和 B 的长度均不超过 3000。题意:求原创 2022-01-30 22:19:05 · 782 阅读 · 0 评论 -
【题解】蒙德里安的梦想/最短哈密顿路径
一、AcWing 291. 蒙德里安的梦想求把 N×M 的棋盘分割成若干个 1×2的长方形,有多少种方案。例如当 N=2,M=4时,共有 5 种方案。当 N=2,M=3 时,共有 3种方案。如下图所示:1.1问题分析我们把这个切割问题转化成为摆长方形的问题,1x2的长方形,既可以竖着摆,也可以横着摆。我们只用分析出哪些位置横着摆,如果剩下的位置就只能竖着摆,则该答案为可行解。以上是该问题的特性,我们背题主要是背特性,剩下的就是考验我们的基本功了。首先,如何确定位置是否已经被摆放?引入01变原创 2021-09-20 22:35:52 · 1318 阅读 · 1 评论