DP求助
  • 板块学术版
  • 楼主Benzenesir
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/2/8 09:55
  • 上次更新2023/10/28 09:27:07
查看原帖
DP求助
258178
Benzenesir楼主2022/2/8 09:55

在一本通网站刷题,但第三个点死活过不去了

题目

code

#include <cstdio>
#include <algorithm>
#include <cstdlib>

using namespace std;

int b[4][201],n; 

int main(){
	cin >> n;
	for(int i=1;i<=n;i++){
		cin >> b[1][i];
	}
//	for(int i=1;i<=n;i++){
//		b[2][i]=1;
//		b[3][i]=0;
//	}
	for(int i=n;i>=1;i--){
		int k=0,l=0;
		for(int j=i+1;j<=n;j++){
			if(b[1][j]>b[1][i]&&b[2][j]>k){
				k=b[2][j];
				l=j;
			}
		}
		b[2][i]=k+1;
		b[3][i]=l; 
	} 
	int maxn=-1,s;
	for(int i=1;i<=n;i++){
		if(b[2][i]>maxn){
			s=i;
			maxn=b[2][i];
		}
	}
	
	cout <<"max=" <<  maxn << endl;
	
	
	while(b[3][s]){
		cout << b[1][s] << " ";
		s=b[3][s];
	}
	cout << b[1][s] << endl;
	
	return 0;
}
2022/2/8 09:55
加载中...