LIS暴力求调
  • 板块学术版
  • 楼主VirtualImage
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/7/18 12:47
  • 上次更新2024/7/18 14:13:11
查看原帖
LIS暴力求调
1278584
VirtualImage楼主2024/7/18 12:47
#include<cstdio>
int n;
const int maxn=25;
int x[maxn];
bool first=true;
int ans;
void dfs(int a[],int len,int w){
	bool flag=true;
	for(int i=1;i<len;i++)
		if(a[i]>a[i+1]) flag=false;
	if(flag)
		if(first) ans=len,first=false;
		else if(len>ans) ans=len;
	for(int i=1,j=x[1];i<=n;j=x[++i]){
		if(i>w){
			int b[maxn];
			for(int t=1;t<=len;t++)
				b[t]=a[t];
			b[len+1]=j;
			dfs(b,len+1,i);
		}
	}
}
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&x[i]);
	int a[maxn];
	dfs(a,0,0);
	printf("%d\n",ans);
	return 0;
}
2024/7/18 12:47
加载中...