46 求调 悬关
查看原帖
46 求调 悬关
1419521
shilige_small楼主2025/1/13 20:27
#include<bits/stdc++.h>
using namespace std;
long long k=1,n,a[1100000],b[110000],dp[1100000],ans=1,l=1;
int main()
{
	while(cin>>a[l]) l++;
	fill(dp+1,dp+110000,1);
	for(int i=2;i<=l-1;i++)
		for(int j=1;j<=i;j++)
		{
			if(a[j]>a[i])
				dp[i]=max(dp[i],dp[j]+1);
			ans=max(dp[i],ans);
		}
	cout<<ans<<endl;ans=0;
	for(int i=1;i<=l-1;i++)
	{
		k=1;
		while(k<=ans&&b[k]<a[i]) k++;
		if(k>ans) ans++,b[ans]=a[i];
		else b[k]=a[i];
	}
	cout<<ans;		
	return 0;
}```
2025/1/13 20:27
加载中...