填坑数学系列
总结协方差的意义,它可以表示物体间的什么属性,它和相关系数之间的关系,以及协方差矩阵的作用。
Build Binary Tree
众所周知,leetcode上不需要自己写读入数据部分的代码。但是这样对于二叉树类型的题目,调试起来就会有点麻烦,因为需要自己现场建一颗树。不太熟悉也不太习惯用leetcode自带的调试功能,所以为了偷懒,我提前写好了一份建二叉树的模板。然后就可以方便的用sublime或者gedit调试了(σ・ω・)σYO♪
Uva1602-Lattice Animals-搜索+仿射变换技巧
给定$n,w,h$,求在$n \times n$的网格中,最多能放入几种宽和高不超过$w和h$的连通块。其中一个连通块经过平移、旋转和翻转得到的连通块不属于新的连通块。
Uva1343-The Rotation Game-IDA*
如下图所以,#字型方格中填充有数字1,2,3。每种数字的个数为8,每行每列都可以“滚动”,实际上是指每行每列的数组可以左右移位。求使得中间8个小格子变为同一种数字的“滚动”方式,要求步数最少,步数相同的情况下滚动序列的字典序最小。
我发现IDA*好像因为深度限制以及估价函数的存在而不需要进行判重。
Uva11212-Editing a Book-IDA*
有$n(1 < n < 10)$个段落初始按一定顺序排列,要求通过“剪切”和“粘贴”操作把这n个段落调整为按编号1,2,…,n顺序排列。其中每次可以同时剪几个连续的段落,求最少的操作步数。
埃及分数-迭代加深搜索
迭代加深搜索实际上是人为规定搜索深度的DFS。从小到大枚举深度上限maxd,每次执行只考虑深度不超过maxd的结点。这样,只要解的深度有限,就一定可以在有限时间内枚举到。
对于可以用回溯法求解但解答树深度没有明显上限的题目,可以考虑使用迭代加深搜索。
Uva1601-The Morning after Halloween-建图+BFS状态搜索/双向BFS
卡了两天,中间曾一度自闭…(●°u°●) 」。不过理解了之后发现确实是好题。
$w \times h,(w, h <= 16)$的网格上有$n(n <= 3)$个小写字母(代表ghost)。要求把它们分别移动到对应的大写字母里。每步可以有多个ghost同时移动(均为上下左右4个方向之一移动),但每步结束之后任何两个ghost不能占用同一个位置,也不能在一步之内交换位置。
Good Bye 2018
2018要结束了,做一个总结吧。
2018这一年真的发生了很多事,1月份和女票在一起,5月份到西安参加ACM-ICPC邀请赛,9月份保研北航成功。2018年可以说是我目前为止最不迷茫的一年,因为我找到了目标,真正喜欢想去实现的目标,很多事情也因为它而改变了。