程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVA 10534 - Wavio Sequence LIS

UVA 10534 - Wavio Sequence LIS

編輯:C++入門知識

 

題目大意:

給定一個長度為n的整數序列,求一個最長子序列(不一定為連續),使得該序列的長度為奇數2*k+1,前k+1個數嚴格遞增,後k+1個數嚴格遞減。(嚴格遞增/遞減意味著相鄰兩個數不能相同)

思路:

可以求兩次LIS(最長上升子序列),一次是遞增的,一次是遞減的(其實就是倒著求遞增的)

n高達10000,因此LIS要用二分查找來優化時間復雜度為O(nlogn)

 

 

 

 

#include
#include
#include
using namespace std;
const int MAXN=10000+10;
const int INF=0x7fffffff;
int data[MAXN],d1[MAXN],g1[MAXN],d2[MAXN],g2[MAXN];

int search(int L,int R,int x,int *g)
{
	while(L

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved