返回顶部

随笔分类 -  洛谷

摘要:题意:有一$n$层高的大楼,每层楼都只能在合法情况下上$x$层或者下$x$层,问你是否能从$a$层楼坐电梯到$b$层楼,输出最小步数. 题解:直接dfs搜,$flo$表示层数,$cnt$表示步数,如果$flo=b$,维护最小值,然后对这层楼标记已走过,判断是否合法再向上向下搜,然后回溯取消标记. 代 阅读全文
posted @ 2020-06-16 09:53 _Kolibri 阅读(233) 评论(0) 推荐(0)
摘要:题意:有一个$3$x$3$的的棋盘,有八个$1$~$8$的棋子,每次可以将一枚棋子移动到四周的空位,问最少移动多少次,使得最后的状态为$123804765$. 题解:直接BFS,用map来Hash存步数,这儿有个比较难想的点,就是把一维的坐标转化为二维的坐标(代码中有注释),然后我们找到$0$的位置 阅读全文
posted @ 2020-06-09 12:23 _Kolibri 阅读(146) 评论(0) 推荐(0)
摘要:题意:有$n$个点,连$m$条边,求最多有多少条食物链(从头走到为有多少条路径). 题解:之前抽了点时间把拓扑排序补完了,这题其实就是一道拓扑排序的裸题.关于拓扑排序: ​ 1.首先,我们用$in$记录某个点的入度,$out$表示这个点向外所连的点. ​ 2.遍历所有点,找到入度为$0$的点,将其入 阅读全文
posted @ 2020-05-28 23:46 _Kolibri 阅读(181) 评论(0) 推荐(0)
摘要:题意:给你一组数,求数组中唯一的出现次数为奇数的那个数. 题解:这题其实直接桶排一下就行了,但是最后一个点会TLE. ​ 后来了解到这题可以用位运算来解决: ​ ^(异或)运算符:用于比较两个二进制数的相应位。在执行按位异或运算时,如果两个二进制数的相应位都位1或两个二进制数的相应位都位0,则返回 阅读全文
posted @ 2020-05-17 12:35 _Kolibri 阅读(244) 评论(0) 推荐(0)
摘要:题意:有一个$R*C$的矩阵,可以从矩阵中的任意一个数开始,每次都可以向上下左右选一个比当前位置小的数走,求走到$1$的最长路径长度. 题解:这题很明显看到就知道是dfs,但是直接爆搜会TLE,这里我们采用记忆化搜索,什么意思呢? ​ 我们在dfs的时候,每次都记录一下每个点到1的路径长度,然后,之 阅读全文
posted @ 2020-05-14 20:33 _Kolibri 阅读(173) 评论(0) 推荐(0)
摘要:题意:给两个长度为$n$的全排列,求他们的LCS 题解:这题给的数据范围到$105$,用$O(n2)\(的LCS模板过不了,但由于给的是两个全排列,他们所含的元素都是一样的,所以,我们以第一个串为模板,第二个串的每一个元素都能对应到第一个串的元素的位置,第二串对映后的最长上升子序列,就是他们的LCS 阅读全文
posted @ 2020-05-14 19:49 _Kolibri 阅读(188) 评论(0) 推荐(0)
摘要:题意 :RT 题解 :这题比较坑,我用了扩欧和快速幂都T了,后来学习了一种线性算法,用来求一连串数的逆元. ​ 首先我们知道 $p\equiv0 \;(mod\,p)$ . ​ 设: $p=k i +r$,$k$是$p/i$的商,$r$是余数. ​ 于是我们得到$k i+r\equiv 0\;(mo 阅读全文
posted @ 2020-05-08 15:02 _Kolibri 阅读(157) 评论(0) 推荐(0)
摘要:很久之前写的题了,当时不知道怎么dfs所以卡了一段时间,^_^ 题解:由于题目给了一大堆字符串,所以首先考虑应该可以建树,之后找到T所在的位置,对T所在的位置dfs就行了 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstrin 阅读全文
posted @ 2020-04-06 10:27 _Kolibri 阅读(199) 评论(0) 推荐(0)