昨天想了一下D题,有点思路不过感觉很麻烦,就懒得去敲了;
今天上午也想了一下,还是没有结果,看了一下官方题解,证明得很精彩;
这道题目其实就是一道裸地最大上升子序列的题;
看到这里,直接怒码····
#include<cstdio>
#include<algorithm>
using namespace std;
int a[];
int main()
{
int n,k,x,cnt=;
scanf("%d",&n);
for(int i=;i<n;i++)
{
scanf("%d",&x);
int k=upper_bound(a,a+cnt,x)-a;
if(k==cnt)
cnt++;
a[k]=x;
}
printf("%d\n",cnt);
return ;
}