摘要: 我们知道dijkstra可以求最短路,但是它还有一个更为强大的应用,dijkstra求次短路。 我们来看这强大的算法吧。 旅行 旅行团每天固定的从S城市出发到达T城市,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数。 如上图:S=1,T=5,则有两条最短路,1->2- 阅读全文
posted @ 2017-09-26 21:50 star_eternal 阅读(2257) 评论(0) 推荐(0) 编辑
摘要: 栈里面的点,它在整个过程中始终是从根到当前点的一条链。 在所有访问过的点(红点和绿点)中,只有它们是可能扩展出未被访问的点的。 所以当一个点(设为u)退栈的时候,考虑假设以这个点为根,能遍历到的点组成的集合,只会有两种情况:1. 这个点已经被访问过了(变成红色或者绿色)2. 这个点(设为v)还是黑色 阅读全文
posted @ 2017-09-26 11:33 star_eternal 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 我们在做dfs的时候,当访问到一个节点时,会出现四种情况:1.此节点未被访问过,则此次的访问关系边(发起点——>接受点)称为树边(tree edge);(未进栈节点)2.此节点被访问过但此节点的子孙还没访问完,换句话说,此次的发起点的源头可以追溯到接收点,则此次访问关系边称为后向边(back edg 阅读全文
posted @ 2017-09-25 20:46 star_eternal 阅读(1540) 评论(0) 推荐(0) 编辑
摘要: 先说一下单调队列吧! 单调队列,就是一个符合单调性质的队列,它同时具有单调的性质以及队列的性质。他在编程中使用频率不高,但却占有至关重要的地位。它的作用很简单,就是为了维护一组单调数据,让我们在运行的过程中能够快速寻求前k个或后k个中最大或最小的值。 我们从题入手; 时间限制:3.0s 空间限制:6 阅读全文
posted @ 2017-09-25 11:15 star_eternal 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 整除问题 问题描述:给定N个正整数,和一个数M,要求从这N个数中选出一些数来求和,使和为M的整数倍,问一共有多少种方法。0≤M,N≤1000输入:第一行两个数表示N和M;第二行N个数 分别表示给定的这N个数。输出:一个整数,表示方法总数对1234567的余数不考滤N个数中的相同数引起的重复。例如3 阅读全文
posted @ 2017-09-24 12:00 star_eternal 阅读(401) 评论(0) 推荐(1) 编辑
摘要: K上升段 问题描述:对于n的一个全排列,如果它可以划分成k个单调递增序列,每个序列都尽可能最长,则称其为k上升段。例如:排列1 2 4 5 6 3 9 10 7 8是一个合法的3上升段,它可以划分成1 2 4 5 6;3 9 10;7 8这三个单调递增序列。对每个给定的(n,k),请你给出n的所有k 阅读全文
posted @ 2017-09-23 16:03 star_eternal 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 沙子合并 沙子合并问题问题描述:设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=300)。每堆沙子有一定的数量,可以用一个整数来描述,现在要将这N堆沙子合并成为一堆,每次只能合并相邻的两堆,合并的代价为这两堆沙子的数量之和,合并后与这两堆沙子相邻的沙子将和新堆相邻,合并时由于选择的顺序不同, 阅读全文
posted @ 2017-09-23 08:31 star_eternal 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 凸多边形分割 这道题拿道题没有一点思路。我一直在想如何把问题变小,然而一无所获(不是有漏项。就是有重复),最后不得不看了题解,发现这道dp题果然很诡异 设dp(i)表示i边形的方案个数 在一个i边形中,任取两个点,令一个点为1,一个点为i,那么其他点为2——i-1 在点集{2--i-1}中任取一个点 阅读全文
posted @ 2017-09-23 07:39 star_eternal 阅读(1055) 评论(0) 推荐(0) 编辑
摘要: 回文词 给出一个长度不超过5000的串s ,给s 添加尽量少的字母,使它变成一个回文词,即首尾对称的词。例如cbabd 可以添加两个字符变成dcbabcd, 它是首尾对称的。输入:第一行一个整数表示,串的长度。第二行一个串。输出:一个数字,最少要加的字母数。样例:输入:3abb输出:1 网上的代码多 阅读全文
posted @ 2017-09-22 14:38 star_eternal 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 相似基因 时间限制:1.0s 空间限制:2.5MB; 大家都知道,基因可以看作一个碱基对序列。它包含了4种核苷酸,简记作A,C,G,T。生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物。在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度。因为这个研究对疾病的治疗有着非同 阅读全文
posted @ 2017-09-22 11:19 star_eternal 阅读(235) 评论(0) 推荐(0) 编辑