Excaliburer`s Zone

It was challenging, but not risky.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  Algorithm

算法学习心得
摘要:一.最长公共子序列问题(LCS问题) 给定两个字符串A和B,长度分别为m和n,要求找出它们最长的公共子序列,并返回其长度。例如: A = "HelloWorld" B = "loop" 则A与B的最长公共子序列为 "loo",返回的长度为3。此处只给出动态规划的解法:定义子问题dp[i][j]为字符 阅读全文
posted @ 2018-07-21 16:23 Excaliburer 阅读(17037) 评论(1) 推荐(2)

摘要:1.0-1背包的朴素形式 0-1背包问题:给定编号为1,2...n的n个物品和一个容量为C的背包;每个物品的重量为$w_i$,每个物品的价值为$v_i$,求将物品装入背包后,背包能获得的最大价值。其状态转移方程为: $$ dp[i][j] = \begin{cases} \max\{dp[i-1][ 阅读全文
posted @ 2018-07-19 15:49 Excaliburer 阅读(337) 评论(0) 推荐(1)

摘要:最近做题用到了并查集索性就把自己所掌握的相关知识总结一下。 并查集(union-find sets),CLRS上称为disjoint-set,是一组不相交的动态集合S1,S2,....Sk。它能够实现较快的合并和判断元素所在集合的操作,应用比较广泛,如其求无向图的连通分量个数,利用Kruskar算法 阅读全文
posted @ 2016-10-18 23:27 Excaliburer 阅读(604) 评论(1) 推荐(1)

摘要:Q:对于一个连续的数组,求其任意连续的子数组和的最大值。 分析: 1.对于此题,直接应用暴力求解的话,时间复杂度应为O(n^2). 2.此处应用时间复杂度为O(n)的算法来求解,即前缀和的处理。 首先,函数sum(i,j)表示数组从下标i到下标j的连续元素的和。容易想到:sum(i,j) = sum 阅读全文
posted @ 2016-10-18 21:37 Excaliburer 阅读(733) 评论(0) 推荐(0)

摘要:时间限制:10000ms 单点时限:1000ms 内存限制:256MB 单点时限:1000ms 内存限制:256MB 描述 There is an integer array A1, A2 ...AN. Each round you may choose two adjacent integers. 阅读全文
posted @ 2016-10-10 23:47 Excaliburer 阅读(235) 评论(0) 推荐(0)

摘要:题目大意:输入一个字字符串,输出该字符串中所包含的"word"个数,其中"word"是指连续的字母(大小写均可) 题目思路:其实这是道水题,不过我考虑的时候,太想当然了,我是把空格作为每个子串的分界,遇到一个空格就去判断空格前的子串是否为单词。 然而实际上并不是这样,如果是连续的符号中夹杂着单词的话 阅读全文
posted @ 2016-10-09 23:24 Excaliburer 阅读(217) 评论(0) 推荐(0)