上一页 1 ··· 3 4 5 6 7 8 下一页

2016年5月18日

状态压缩dp 入门

摘要: 1、有一张n*m (n<=m)的棋盘,在上面放n个中国象棋里的车,使得任意两个车不能相互攻击,总共有多少种不同的方案。 2、有一张n*m (n<=m)的棋盘,其中有些格子里面不能放,在上面放n个中国象棋里的车,使得任意两个车不能相互攻击,总共有多少种不同的方案。 3、有一张n*m (n<=m)的棋盘 阅读全文

posted @ 2016-05-18 09:18 比特飞流 阅读(139) 评论(0) 推荐(0) 编辑

牧场安排(usaco NOV06.cowfood)

摘要: ohn新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地。FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当的贫瘠,不能用来放牧。并且,奶牛们喜欢独占一块草地的感觉,于是FJ不会选择两块相邻的土地,也 阅读全文

posted @ 2016-05-18 08:25 比特飞流 阅读(283) 评论(0) 推荐(0) 编辑

2016年5月15日

区间dp

摘要: •该类问题的基本特征是能将问题分解成为两两合并的形式。解决方法是对整个问题设最优值,枚举合并点,将问题分解成为左右两个部分,最后将左右两个部分的最优值进行合并得到原问题的最优值。有点类似分治的解题思想。 •设前i到j的最优值,枚举剖分(合并)点,将(i,j)分成左右两区间,分别求左右两边最优值,如下 阅读全文

posted @ 2016-05-15 14:58 比特飞流 阅读(105) 评论(0) 推荐(0) 编辑

炮兵阵地

摘要: 题目描述】 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所 阅读全文

posted @ 2016-05-15 14:57 比特飞流 阅读(193) 评论(0) 推荐(0) 编辑

合并石子

摘要: 石子合并问题是最经典的DP问题。首先它有如下3种题型: (1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费最小(或最大)。 分析:当然这种情况是最简单的情况,合并的是任意两堆,直接贪心即可,每次选 阅读全文

posted @ 2016-05-15 11:32 比特飞流 阅读(211) 评论(0) 推荐(0) 编辑

2016年5月12日

最长上升公共子序列

摘要: 定义状态 F[i][j]表示以a串的前i个整数与b串的前j个整数且以b[j]为结尾构成的LCIS的长度。 状态转移方程: 现在我们来说为什么会是这样的状态转移方程呢? 对于①,因为F[i][j]是以b[j]为结尾的LCIS,如果F[i][j]>0那么就说明a[1]..a[i]中必然有一个整数a[k] 阅读全文

posted @ 2016-05-12 17:21 比特飞流 阅读(247) 评论(0) 推荐(0) 编辑

最长公共子序列(LCS)

摘要: 一: 作用 最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功。 二:概念 举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个,比如其中的cb,cgs等等都是其子序列,我们可以看出 子序列不见得一定是连续的,连续的那是子串。 我想 阅读全文

posted @ 2016-05-12 16:07 比特飞流 阅读(176) 评论(0) 推荐(0) 编辑

2016年5月10日

最近公共祖先(LCA)

摘要: 1、 概述 LCA(Least Common Ancestors),即最近公共祖先,是指这样一个问题:在有根树中,找出某两个结点u和v最近的公共祖先(另一种说法,离树根最远的公共祖先)。 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n 阅读全文

posted @ 2016-05-10 09:06 比特飞流 阅读(328) 评论(0) 推荐(0) 编辑

2016年4月29日

最长不下降子序列的O(n^2)算法和O(nlogn)算法

摘要: 一、简单的O(n^2)的算法 很容易想到用动态规划做。设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i>j。然后在lis[]中找到最大的一个值,时间复杂度是O(n^2)。 代码实现: int Longest_In 阅读全文

posted @ 2016-04-29 16:42 比特飞流 阅读(267) 评论(0) 推荐(0) 编辑

子序列相关问题

摘要: ①最长上升(下降)子序列/最长不下降(上升)子序列、(O(nlog2n)算法)(导弹防御 usaco 4.3.1) ②最长先上升后下降子序列 (合唱队形) ③最长上升下降相间子序列(花匠) ④最大连续子序列和 O(n) ⑤子序列的和为固定值 O(n2) (usaco 平分子集) ⑥最大元素不相邻子序 阅读全文

posted @ 2016-04-29 16:29 比特飞流 阅读(225) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页

导航