玄关
  • 板块P1410 子序列
  • 楼主liangyimim
  • 当前回复10
  • 已保存回复10
  • 发布时间2025/7/21 11:55
  • 上次更新2025/7/21 16:50:59
查看原帖
玄关
1420772
liangyimim楼主2025/7/21 11:55
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e3+5;
const int inf=1e9;
int main()
{
	int n;
	while(cin>>n)
	{
		int f[MAXN][MAXN]={inf};
		int a[n+1];
		for(int i=1;i<=n;i++) cin>>a[i];
		f[0][0]=1;
		f[1][1]=-1;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=i;j++)
			{
				if (f[i][j]!=1e9)
				{
					if (a[i]<a[i+1]&&f[i+1][j+1]>f[i][j]) f[i+1][j+1]=f[i][j];
					if (f[i][j]<a[i+1]&&f[i+1][i+1-j]>a[i]) f[i+1][i+1-j]=a[i];
				}
			}
		}
		if(f[n][n/2]==1e9)
		{
			cout<<"No!";
		}
		else cout<<"Yes!";
		puts("");
	}
	return 0;
}

2025/7/21 11:55
加载中...