DP10分求调
查看原帖
DP10分求调
785413
rick_roll楼主2022/10/21 20:49

RT,代码很离谱,但它竟然能过一个点

#include<bits/stdc++.h>
#define ll long long
#define ff(i,n) for(int i=1;i<=n;i++)
#define shu(sb) scanf("%d",&sb)

using namespace std;
int a[10005]= {},n,now=0,dp1[10005]={},dp2[10005];
int main() {
	shu(n);
	ff(i,n)shu(a[i]);
	ff(i,n) 
	{
		dp1[i] = 1;
		ff(j,n) 
		{
			if(a[i]>a[j])dp1[i]=max(dp1[i],dp1[j]+1);
		}
	}
	for(int i=n;i>=1;i--) 
	{
		dp2[i]=1;
		for(int j=n;j>=i;j--)
		{
			if(a[i]<a[j])dp2[i]=max(dp2[i],dp2[j]+1);
		}
	}
	ff(i,n)
	{
		if(now<dp1[i]+dp2[i]-1)now=dp1[i]+dp2[i]-1;
	}
	cout<<now;
}
2022/10/21 20:49
加载中...