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

浙公网安备 33010602011771号