题意:求一段序列中删掉L个连续元素后的LIS。解法:我的想法很复杂= =怎么说呢……首先用nlogn的方法求LIS得到的序列dp的第i项的意义为上升子序列所有长度为i的序列结尾元素的最小值,那么先倒着用nlogn的方法求一遍最长下降子序列记为dp1,记录每一步怎么更新的dp1,再正着求一遍最长上升子...
分类:
其他好文 时间:
2015-09-27 20:11:16
阅读次数:
222
反向做最长下降子序列+贪心就行了(不过这数据我觉得n2能a) 1 #include 2 #define lowbit(a) ((a)&(-(a))) 3 #define clr(a,x) memset(a,x,sizeof(a)) 4 #define rep(i,l,r) for(int i=l;i...
分类:
其他好文 时间:
2015-08-18 22:40:57
阅读次数:
199
Alignment
Time Limit: 1000MS
Memory Limit: 30000K
Total Submissions: 14486
Accepted: 4695
Description
In the army, a platoon is composed by n soldiers. During the mor...
分类:
其他好文 时间:
2015-08-10 09:28:14
阅读次数:
111
每个箱子可有3种叠加方式,所以有3*n个箱子。将箱子按长度由大到小排序,有求箱子按宽度的最长下降子序列的高度之和即可。#include#include#includeusing namespace std;#define MAX(a,b) (a>b)?a:b#define MIN(a,b) (a>b...
分类:
其他好文 时间:
2015-08-02 11:26:20
阅读次数:
137
题意:
输出体重上升而速度下降的最长子序列
题意:
先按照结构体升序排序体重,之后用dp对速度求最长下降子序列即可。
代码:#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
编程语言 时间:
2015-05-24 10:12:51
阅读次数:
139
题目传送门 1 /* 2 LIS模板题:n - 最长下降子序列 -> 最长上升子序列 贪心做法以后再补:) 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 1...
分类:
其他好文 时间:
2015-05-05 16:08:48
阅读次数:
136
题目描述 Description
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入描述 Input Description
...
分类:
其他好文 时间:
2015-04-07 21:52:33
阅读次数:
102
题目挺坑的..但是不难.先反向做一次最长下降子序列.然后得到了d(i),以i为起点的最长上升子序列,接下来贪心,得到字典序最小.-------------------------------------------------------------------#include#define rep...
分类:
其他好文 时间:
2015-03-28 18:37:13
阅读次数:
145
题目大意:Wavio序列是关于整数的序列,有这样的性质:
1.长度为奇数,L=2*n+1
2.前n+1项严格递增
3.后n+1项严格递减
4.相邻的两个数不相等
给出n个数的序列,求出其中最长的Wavio子序列的长度。
依次对每个元素求以它为结束的最长上升子序列和以它为开始的最长下降子序列,b[i]为以i为最后一个元素的最长上升子序列,c[i]为以i为第一个元素的最长下降子序列...
分类:
其他好文 时间:
2015-03-06 01:03:40
阅读次数:
222
题意:有一种拦截系统,可以打击导弹,但是打击的高度会逐渐下降,因此为了防御导弹攻击,就必须用多个系统,现给出一列导弹依次的高度,求最少需要的系统数。这道题是最长上升子序列问题,但是我一开始其实并没有想到,最开始我的思路是依次剔除最长下降子序列,每剔除一轮就是需要一个拦截系统,然后直到全部数都剔除了就...
分类:
其他好文 时间:
2015-02-28 00:10:59
阅读次数:
142