很多问题往往会给出一个序列或者一个数表,让你对其进行划分,或者选出其中的某个最优子集。这一类问题往往适合使用线性DP。 线性DP是一种非常常见的DP。它往往以状态内的其中一个维度划分阶段。接下来,我将给出几个非常重要的转移方程。 最长上升(下降)子序列LIS 已知一个序列$A_i$。现在我希望从这个 ...
分类:
其他好文 时间:
2019-09-26 12:09:11
阅读次数:
85
代码: 最长上升(下降)子序列、不要忘了清零(ma,ans) ...
分类:
其他好文 时间:
2016-04-13 18:18:52
阅读次数:
208
问题 给定n个数,从中拿走x(x>=0)个数。使剩下的数最有下列性质。 A1 < A2 < A3 <…At > At+1 >At+2 > … > As 问最少要抽掉几个数。此数列才会具有以上性质。 图解 代码 #include "stdafx.h" const int MAX=105; int do
分类:
编程语言 时间:
2016-02-06 14:18:26
阅读次数:
152
问题
给定n个数,从中拿走x(x>=0)个数,使剩下的数最有下列性质。
A1 At+1 >At+2 > … > As
问最少要抽掉几个数,此数列才会具有以上性质。
图解
代码
#include "stdafx.h"
const int MAX=105;
int down[MAX],up[MAX];
int h[MAX],n;
void get_up(){
int...
分类:
编程语言 时间:
2014-10-11 19:15:56
阅读次数:
248