为什么一直没输出?
查看原帖
为什么一直没输出?
416139
Black_Warrior楼主2022/6/14 22:16
#include<bits/stdc++.h>
using namespace std;
const int maxn=100000+10; 
int n,ans1,ans2,dp1[maxn],dp2[maxn],a[maxn];
//dp1[i]表示以i开头的最长不上升子序列,dp2[i]表示以i结尾的最长上升子序列 
int main()
{
	while(scanf("%d",&a[n])!=EOF) n++;
	for(int i=n;i>=1;i--)
	{ 
		dp1[i]=1;
		for(int j=i+1;j<=n;j++)
		{
			if(a[i]>=a[j]) dp1[i]=max(dp1[i],dp1[j]+1);
		}
		ans1=max(ans1,dp1[i]);
	}
	for(int i=1;i<=n;i++)
	{
		dp2[i]=1;
		for(int j=1;j<i;j++)
		{
			if(a[i]>a[j]) dp2[i]=max(dp2[i],dp2[j]+1);
		}
		ans2=max(ans2,dp2[i]);
	}
	cout<<ans1<<endl<<ans2;
}
2022/6/14 22:16
加载中...