记忆化搜索40ptsRE求助!
查看原帖
记忆化搜索40ptsRE求助!
372336
一个句号楼主2023/8/1 16:32
#include<iostream>
#include<cstring>
using namespace std;
//暴力?
int n;
int a[5005]; 
int maxans=0;

int mem[5005][5005];
void dfs(int num,int pos,int ans){
	if(pos==n){
		maxans=max(maxans,ans);
		return ;
	}
	mem[num][pos]=max(mem[num][pos],ans); 
	for(int i=pos+1;i<=n;i++){
		if(a[i]>num){
			if(mem[a[i]][i]!=-1) continue;//只求一次,是不是没必要? 			
			dfs(a[i],i,ans+1);
		}
	}
}

signed main(){
	memset(mem,-1,sizeof(mem));
	cin>>n;
	for(int i=1;i<=n;i++)	
		cin>>a[i];
	dfs(a[1],1,1);
	cout<<maxans;
	return 0;
} 
2023/8/1 16:32
加载中...