写最长上升子序列和最长公共子序列两篇博客都是为了后面的最长公共上升子序列准备啊~
一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则它就是这两个序列的最长公共子序列(Longest Common Sequence,简称LCS)。
最长上升子序列,全称Longest Increasing Sequence,简称LIS,在计算机科学上是指一个序列中最长的单调递增的子序列(百度百科)。这个序列不一定是连续的。
动态规划(Dynamic Programming),简称DP,是用于求解决策过程中的最优化数学方法,不仅用于编程领域,也用于管理学、经济学、生物学(具体这三个地方怎么用就不关我们事了)。作为NOIP竞赛的每年必考题型,动态规划是很重要的!!!
最近买了个VPS,CentOS,不提供图形界面……那么正确的打开方式当然就是SSH连接了~
2019.10.11 Upd:这是 ZS 时期写的一篇非常 naive 的博客,别看了。
SPFA 会被卡,Dij 才最好。
SPFA真是最好的单源最短路算法,没有之一。
SPFA全称是Shortest Path Faster Algorithm,直译过来就是“最短路更快算法”,从这个名称就能看出SPFA效率很高。SPFA加上SLF优化以后被称作单源最短路的“无敌”,时间复杂度可以达到O(ke)(k表示平均每个节点入队次数,k≤2,e表示边数),可以刷负边权。
Linux用久了发现VIM命令还是需要学一下……
一开始用VIM:“这什么垃圾编辑器,连图形界面都没有,还要用命令行,不能直接移动光标,上个世纪的吧!”VIM在终端里运行,使用方式完全与我们习惯用的Windows操作系统里的文本编辑器不同。实际上这就是VIM的强大之处:不需要图形界面就可以直接在终端里编辑文本。
C++ STL 里的 set,顾名思义就是集合。和数学里的集合一样,C++ STL 里的集合也具有互异性,即每个元素最多只出现一次。如果需要某个值出现多次就可以用 multiset。
集合的好处是,集合里存的元素都是从小到大排好序的。这和插排不同,集合的复杂度是 log2(n),对解决一些题目十分有用。
Say hello to the world!
据说这个博客是用来写学 OI 的总结的?!