您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) D. Recovering BST(区间DP)

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) D. Recovering BST(区间DP)

来源:意榕旅游网


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e3+1;
int n,L[maxn][maxn],R[maxn][maxn],ans[maxn][maxn],v[maxn][maxn],a[maxn];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;++i) L[i][i]=R[i][i]=1,scanf("%d",&a[i]);
	for(int i=1;i<=n;++i)
	for(int j=i+1;j<=n;++j)
	v[i][j]=v[j][i]=__(a[i],a[j])!=1;
	for(int len=1;len<=n;++len)//枚举区间长度
	for(int l=1,r;(r=l+len-1)<=n;++l)
	for(int k=l;k<=r;++k)
	if(L[l][k]&&R[k][r])
	{
		ans[l][r]=1;
		if(v[k][l-1]) R[l-1][r]=1;
		if(v[k][r+1]) L[l][r+1]=1;
	 } 
	 printf("%s\n",ans[1][n]?"Yes":"No");
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务