題意就是找出最長的乙個序列滿足如下條件:1、整個序列對稱;2、前半段序列非遞減
想想其實可以將序列倒序儲存到另乙個陣列,然後比較兩個陣列的最長上公升子串行。注意一點 j<(n-i+!) 這點很重要,因為有可能出現兩個序列的最長公共子串行在原序列中有重疊部分。具體方法見**
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long lld;
#define oo 0x3f3f3f3f
#define maxn 205
int dp[maxn];
int a[maxn], b[maxn];
intmain
()int k;
ans =0;
memset
(dp,0,
sizeof dp);
for(
int i =
1; i <= n; i++)
}printf
("%d\n"
, ans);
}return0;
}/*15
1 4 2 5 -12
4-12 1 2 4
*/
Dp 最長上公升子串 最長上公升子串行
乙個數的子串bi,當b1 b2 bs的時候,我們稱這個子串是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串 ai1,ai2,aik 這裡1 i1 i2 ik n。如 對於序列 1,7,3,5,9,4,8 有它的一些上公升子串,如 1,7 3,5,9 等等。這些子串中最長...
最長公共子串行 最長上公升子串行 最長公共上公升子串行
核心 for int i 1 ifor int j 1 jif a i b j else hdu5248 樹狀陣列優化 nl ogn nlo gn include using namespace std const int maxn 100005 char a maxn int len int bi...
最長上公升子串行 最長公共上公升子串行
求最長公共子串行有幾種方法 include include using namespace std include include const int inf 0x3f3f3f3f const int maxn 10005 int a maxn ints maxn int dp maxn int d...