最长上升子序列+最长递减子序列-反复的方法不严谨,貌似有人已经找到反例了,至于为什么那种方法能ac应该是測试数据弱吧下面才是最标准的做法//#pragma comment(linker, "/STACK:102400000,102400000")#include#include#include#in...
分类:
其他好文 时间:
2014-09-21 13:40:00
阅读次数:
316
题目:历史上有一些事件发生的先后顺序,现在有很多学生写了不同的顺序表,
判断每个学生的最大的前后顺序正确的序列。
分析:dp,LIS,最大上升子序列。
注意本题的数据格式,串里的每个元素对应于:对应下标编号的事件在表中的位置;
状态:F(n)记录以第n个元素为结束元素的序列的最长上升子序列,有转移方程:
F...
分类:
其他好文 时间:
2014-09-15 11:17:48
阅读次数:
252
第一次接触一个这最长公共上升子序列不过其实搞清楚了跟最长公共子序列和 最长上升子序列如出一辙两重循环,对于当前不相等的,等于前一个的值,相等的,等于比当前A【i】小的最大值+1。弄个临时变量记录最大值即可#include #include #include #include using namesp...
分类:
其他好文 时间:
2014-09-09 17:48:39
阅读次数:
244
这题一看10000的数据量就知道必须用nlog(n)的时间复杂度。
所以特意去看了最长上升子序列的nlog(n)的算法。
如果有2个位置,该位置上的元素为A[i]和A[j],并且他们满足以下条件:
1.dp[i] = dp[j] (dp[x]代表以x结尾的最长上升子序列长度)
2.A[i]
3.i
那么毫无疑问,选择dp[i] 一定优于选择dp[j]
那么我们可以利用g[i...
分类:
其他好文 时间:
2014-09-06 22:34:24
阅读次数:
286
题目链接:HDU 1160 FatMouse's Speed
题意:求体重越重,反而速度越慢的例子,并输出对应的编号。
对speed进行从大到小排序,再求weight的最长上升序列,并输出路径。
AC代码:
#include
#include
#include
using namespace std;
struct Node
{
int weight;
int spee...
分类:
其他好文 时间:
2014-09-03 15:00:16
阅读次数:
214
题意: 给出最多5个序列,问这几个序列的最长公共子序列的长度是多少。solution : 脑抽级别我是,第一个序列每个数字位置固定,这样只要维护一个k-1维的偏序集就好了。然后在保证每个位置合法的情况下走一遍最长上升子序列就好了。1#include2usingnamespacestd;3consti...
分类:
其他好文 时间:
2014-08-30 21:33:20
阅读次数:
173
题目链接:http://poj.org/problem?id=3903
Stock Exchange
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 4263
Accepted: 1523
Description
The world financi...
分类:
其他好文 时间:
2014-08-28 16:11:09
阅读次数:
203
导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数。这就涉及到组合数学中偏序集的 Dilworth定理...
分类:
其他好文 时间:
2014-08-26 19:31:46
阅读次数:
273
给你N信封和1张卡片,让你从左到右选择信封(要求是右信封比左信封大)且最左边的信封要能装进卡片#include #include #include using namespace std;struct Node{ int si, sj; unsigned short n;};Node S...
分类:
其他好文 时间:
2014-08-25 20:50:04
阅读次数:
186
其实就是最长上升子序列。只要把普通的LIS中的“>”改为另外一种这里需要的判断的方式即可。dp[i]表示包含i在内的从1到i的LIS 状态方程, dp[i] = max(dp[i],dp[j]+1)(if(“i>j”));边界dp[i] = 1;最后还需要扫一遍dp[]取出其中的最大值,(为什么d....
分类:
其他好文 时间:
2014-08-24 23:28:53
阅读次数:
270