ans = max( 以i开头的最长不下降子序列+以i开头的最长不上升子序列-min(以i开头的最长不下降子序列中val[i]的个数,以i开头的最长不上升子序列中val[i]的个数) )
但是LIS求的是以i结尾的,所以将数组翻转
#include#include #include #include #include using namespace std;const int maxn = 100100;int val[maxn] , n;void DP(int num[],int dp[],int same[]) { vector v; for(int i=0;i