
算法竞赛刷题记录
m0_73035684
这个作者很懒,什么都没留下…
展开
-
HDU1540 Tunnel Warfare
前面做了两个线段树上二分的题了,这个题其实思路就比较自然了,还是用线段树上二分,算法竞赛上面用的好像是类似维护最大子列和的思路,还没看我就觉得不如线段树上二分,算是一个基础的线段树上二分的练习。原创 2024-05-03 12:01:00 · 58 阅读 · 0 评论 -
POJ3083 Children of the Candy Corn
题目让求3个数,前两个是一样的方法,第三个太简单了就不说了,就说第一个,这里我们显然要用到方向,也就是状态是横纵坐标以及方向,至少我是这么写的,然后这里的本质就是一条链,遍历一条链,当然链上可能有写点多次走过,但是,就像前面说的这样走总能走到终点,所以使用一个while循环就行了,感觉这才是这个题的本质,不是什么树形或者更复杂的结构,使用DFS当然可以,但是这样就简单问题复杂化了,使用一个while循环,一定能走到终点,剩下的就是带方向的模拟了,考验这类模拟的基本功,就不说了。原创 2023-02-01 17:35:30 · 136 阅读 · 1 评论 -
P2572 [SCOI2010] 序列操作
这个题还是有点复杂的,第二次写了40分钟一遍过真的惊讶,这个题一个结点不经需要维护0的信息也需要维护1的信息,那么我的结构题里面写了9个变量,每次向上传递的时候0和1的信息都要更新,然后是线段树的修改操作,赋值操作的优先级高,要先于值转换的操作,向下传递的时候,赋值完,左右两个孩子结点的转换懒标记应该变成和父亲一样的,询问操作的时候,区间的左右端点也是要传的,这个不要忘记了,总之这个题是线段是维护最大连续子列和的升级版本,还是可以的。原创 2023-01-16 18:19:11 · 126 阅读 · 0 评论 -
UVA10587 Mayor‘s posters
这个用线段树来实现,就是区间修改区间查询,区间修改就是把区间所有的数都改成一个,然后查询就是最后查询一次所有叶子结点的数字,最后统计一下不同的数字的个数就是能看到的海报的数目,但是这个题的数据有点大,所以要用离散化,这里离散化也有一个小技巧,排好序去重那一步里,两个挨着的数中间没有数的话,那么加上一个,这个可以防止出错,这里的原理还要好好想一想。知识点:线段树,离散化。原创 2023-01-14 20:42:19 · 64 阅读 · 0 评论 -
HDU4614 Vases and Flowers
这个说是线段树二分的练习题,我想象的二分就是直接在线段树上面递归找,但是无奈自己的实力还不允许自己写出这样的程序,就先写了一个二分套线段树,这样子感觉一次查找的时间复杂度是logn的平方,因为外面一层二分里面一层线段树,如果是直接在线段树上面递归查找感觉可以到logn,但是我还不会写。原创 2023-01-14 20:07:47 · 128 阅读 · 0 评论 -
HDU1698 Just a Hook
这个是一个简单的区间修改区间查询的问题,甚至区间查询只有一个,这个题用李煜东讲的懒标记的方法非常简单,刘汝佳讲的稍微麻烦一点,就好比链表,李煜东上来就给你的是带头节点尾结点的链表,可以直接用不用分类讨论,但是刘汝佳就是给你一个链表,然后开始分类讨论,遇到在头节点位置插入怎么办,这是两个人的区别,我看刘汝佳的代码没有看太懂,但是感觉到了如果采用李煜东的写法是不用分类讨论的,一提交果然如此,对于懒标记的理解,只能在做题当中慢慢积累。原创 2023-01-13 21:45:58 · 110 阅读 · 0 评论 -
HDU4027 Can you answer these queries?
最后说一下杭电的题真的很无聊,查询一个区间,它给的区间还不一定是合法的区间,连这种问题还需要你自己去判断一下。知识点:线段树,数学。原创 2023-01-13 17:56:31 · 98 阅读 · 0 评论 -
HDU6187 Destroy Walls
【代码】HDU6187 Destroy Walls。原创 2023-01-10 23:41:09 · 69 阅读 · 0 评论 -
HDU4750 Count The Pairs
知识点:最小生成树,离线。原创 2023-01-10 22:58:29 · 79 阅读 · 0 评论 -
POJ2485 Highways
求最小瓶颈生成树,也就是一个生成树的最大边尽量小,一个图的最小生成树就是它的最小瓶颈生成树,但是最小瓶颈生成树不一定是最小生成树。原创 2023-01-10 18:28:18 · 72 阅读 · 0 评论 -
POJ1789 Truck History
现在是在做最小生成树的题,所以我一下子就想到了这个就是图论模型,然后用最小生成树做,边就是字符串之间不相等的个数,但是如果不是练习最小生成树,可能我想不起来这样做,希望自己能达到以后完全掌握这样知识的地步,还有这是完全图,边很多,要尽快学习一下prim算法。原创 2023-01-10 18:14:39 · 85 阅读 · 0 评论 -
HDU2473 Junk-Mail Filter
这个是真正的并查集的删除操作,就是并查集删点的时候要把它连接到一个辅助点上面,这个辅助点不是我们真正的元素,我一开始的写法是错的,就是直接把删除的点连接到自身,这个肯定是错的,但是这个题,spoj上面有,结果我在那个oj上面过不了,在杭电上面就能过,不知道为什么。原创 2023-01-08 23:15:41 · 81 阅读 · 0 评论 -
HDU1257 最少拦截系统
这个题用的贪心的思想,然后用set来维护,为啥不用dp,因为现在的知识储备想不起来用dp做,就算做了上了考场也是不会,这个要想转换到最长上升子序列好像要用到什么定理,看了不会,就先用一个贪心做了。知识点:贪心,平衡树。原创 2023-01-08 18:18:56 · 52 阅读 · 0 评论 -
P1991 无线通讯网
这个等同于求一颗最小生成树里面的第k大边,n个结点的最小生成树有n-1条边,s个卫星电话就是可以帮你连s-1条边,也就是让你求这个最小生成树里面的第n-1-s+1,也即是第n-s大的边,按照最小生成树跑一边就行了。原创 2023-01-07 13:52:36 · 96 阅读 · 0 评论 -
P4951 [USACO01OPEN]Earthquake
看很多大佬说这个是01分数规划的入门练习题,估计是这样的话,本题的思路就是二分答案,然后用求01分数规划的方法求解,判定函数里面因为要把所有的点都连通,所以边排序之后用求最小生成树的方法来连,其实这里是求的是满足把所有路都连通的我们推的那个式子的最小值,总之感觉自己只是会套算法,一开始看书的时候知道最小生成树有这么一个问题,看到这个题就往那个方向想了,然后就8分钟把这个题过了,但是我还是觉得自己对于这种知识点掌握的不好。知识点:二分,01分数规划,最小生成树。原创 2023-01-07 00:58:38 · 77 阅读 · 0 评论 -
SP338 ROADS - Roads
没啥好说,感觉是很水的题目,用的剪枝也是非常简单的,就过了,这也是蓝题?原创 2023-01-05 23:02:40 · 87 阅读 · 0 评论 -
UVA12101 Prime Path
比较简单的广搜,算是抽象的状态图的搜索,因为是最短次数,所以可以使用广搜。原创 2023-01-05 16:21:30 · 75 阅读 · 0 评论 -
UVA1189 Find The Multiple
这个题的数据比较小,让你求1到200的倍数,那么可以尝试打表,先把1到200都求出一个答案记录下来,然后尝试,不超过20层就能都找到答案,所以不需要高精度什么的,但是我觉得这个题有点迭代加深的思想,因为有的时候的分支就躲过了较短的层数,但是还没有学这个搜索技巧,所以先不考虑。原创 2023-01-05 13:52:51 · 74 阅读 · 0 评论 -
P6063 [USACO05JAN]The Wedding Juicer G
【代码】P6063 [USACO05JAN]The Wedding Juicer G。原创 2023-01-05 12:00:52 · 104 阅读 · 0 评论 -
HDU6113 度度熊的01世界
还是比较简单的一道题,我们把外圈补一层0,然后深搜记录一下1和0的连通块的个数,就可以发现,1的连通块个数是1,0的是2,那么就是图像0,如果一和二都是1,那么就是图像1,其余的是-1,这样这个题就完成了。知识点:深搜,连通块。原创 2023-01-05 11:17:55 · 125 阅读 · 0 评论 -
POJ2157 Maze
不难想到,最多有5个门,那么最多6次深搜,一定能得出答案,也就是第6次深搜的时候能够完全确定是不是连通,因为5次深搜能够保证该打开的门都打开了,然后第6次就可以进去判断了,所以我们需要一些数组来记录,一个是记录每个门的状态,一旦开开了那么以后的搜索就都是开的了,还有记录输入里面开一个门所需要锁的数量,也就是小写字母,然后一个数组记录当前搜索结束每个门的小写字母的数量,然后和初始记录的比较,如果相同,那么这次搜索以后,这个门就是开开的了,我一开始写的是5次深搜,结果还过了,感觉这个数据是不是不是很强。原创 2023-01-05 10:40:55 · 79 阅读 · 0 评论 -
HDU2094 产生冠军
这个题还是很坑的,就是冠军的含义,图里面有环都是可以的,只要只有一个人没有输过,那么就是可以确定冠军的,这个冠军的下面存在环都是无所谓的,因为输过的人已经不可能是冠军了,所以这个题只要统计一下入度,最后看看入度为0的人是不是只有一个,就行了,原创 2022-12-31 13:49:35 · 149 阅读 · 0 评论 -
Connections in Galaxy War
需要注意的点,边的表示我们要统一,查询点和根的权值相等就是-1,两组输出之间有空行但是最后没有,知识点:离线,并查集。原创 2022-12-30 05:43:08 · 71 阅读 · 0 评论 -
POJ1984 Navigation Nightmare
这个题是离线思想+边带权并查集练习题,感觉是有蓝题难度的,但是前面写过一个离线并查集了,这个题做着就比较手熟,23分钟一次过了这个题,这个题并没有什么亮点,题目的问法就是提示你这个题要用离线,然后带权并查集也只是多了一个权,本质上没有什么区别,所以还是很快就过了这个题。知识点:离线,并查集。原创 2022-12-29 13:45:23 · 86 阅读 · 0 评论 -
P4185 [USACO18JAN]MooTube G
我们考虑暴力的做法,每次询问,先初始化,每个点都自成一个连通块,然后按照题意,求到给定点熟练度不小于某值的点的个数,很自然的想到,这就等价于,我们把大于等于给定边权的边连接上,然后看要查询的点所在连通块的点的个数减一,就是这个询问我们要求的值,这很明显是正确的,因为当前查询点到其它连通块,肯定是要经过一条边权小于给定值的边的,那么那些连通块的点其实就不是答案,因为熟练度的定义是经过路径最小值,知识点:离线,并查集。原创 2022-12-29 09:15:01 · 107 阅读 · 0 评论 -
HDU6109 数据分割
【代码】HDU6109 数据分割。原创 2022-12-29 08:16:35 · 83 阅读 · 0 评论 -
P1175 表达式的转换
回到这个题,李煜东已经很详细的讲解了中缀表达式转化成后缀表达式的方法,但是没有带乘方这个运算符,那么这里就加上,题目的下面也有提示,别的同级的运算符之间都是从左向右结合,但是乘方是从右向左结合,所以其它的都不变,但是我们遍历到乘方这个运算符的时候直接入符号栈,不需要把前面的优先级大于等于它的(实际上前面只可能有等于它优先级的不可能有大于它优先级的)出栈,这是我试出来的,应该也是乘方是从右向左结合的体现,只有这个点是不一样的,其它的都一样。原创 2022-12-28 04:32:39 · 136 阅读 · 0 评论 -
HDU1062 Text Reverse
这个题还是老老实实的用栈把,因为我看下面的评论说可能有多个空格,那么字符串翻转这个方法就不行了,因为没有办法统计有的连续空格究竟有多长。原创 2022-12-27 10:27:24 · 69 阅读 · 0 评论 -
HDU1272 小希的迷宫
这个题有一个坑点,那么就是可能输入的数据就是一组0 0,那么这个时候输出yes,其它的没有了。原创 2022-12-14 05:30:22 · 167 阅读 · 0 评论 -
HDU1856 More is better
这个题的坑点就是,n为0的时候,答案是1,这个其实不能怪题目的,按照逻辑应该自己想得到的,因为就是没有关系的话那么最多就是只能选出一个人,然后这个题的并查集合并的时候要维护每个并查集的数量,就没有别的要点了,希望明天能把并查集彻底搞明白。原创 2022-12-14 05:13:38 · 116 阅读 · 0 评论 -
HDU3410 Passing the Message
这个题用的是单调栈,以从左向右遍历为例,以前我们建立单调递减栈,那么求的就是栈里每个元素右边第一个大于它的位置,这里我们用来求,当前遍历的点的左边第一个大于它的元素和它之间最大的元素,题目说的是没有元素是相等的,那么这个题就比较简单了,这里记录一下代码,注意和求每个元素左边右边第一个比他大/小的代码作比较。原创 2022-12-11 18:53:38 · 145 阅读 · 0 评论 -
HDU6514 Monitor
知识点:前缀和,差分这个题本来就是一个二维的前缀和与差分问题,但是题目有一个要求比较搞,就是行数列数不限制,只给了总数的限制,那么只能用一维数组来模拟二维数组里面的前缀和与差分操作,这样就多好多细节,这里需要注意的是22到24行代码前面的if语句的判断,这个一开始我没写卡了好长时间,因为这里是边界,边界外面的减一差分数组其实是可以不写的,如果没有这个if语句那么其实就会写到下一行的第一个位置,如果是某行的末尾的话,之所以会出现这样的情况是因为我采用的一维到二维数组之间映射的是不留缝隙的映射,这个细节还是坑了原创 2022-12-07 22:00:36 · 189 阅读 · 0 评论 -
HDU1195 Open the Lock
知识点:广搜难度:估计为4这个题是隐式图的遍历,用的广搜,双向广搜也是可以的,但是我看了看我广搜的的代码就写了这么多,所以双向的,感觉也可以试试,先方个bfs,原创 2022-12-07 14:44:37 · 237 阅读 · 0 评论