先上一道例题:Bridging signals POJ - 1631
这道题第一反应就想到了 [CEOI96]渡轮问题 就是一个非常裸的求最长上升子序列的长度,还不要方案,非常的水。然而,常规的dp复杂度是 O(n^2) ,这道题会愉快地TLE,所以要进行nlogn级别的优化。
//O(n^2) TLE
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define MAXN 40005
int n;
int a[MAXN],dp[MAXN];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int ans=-1;
scanf