社区讨论

100分(第一个点不过)求调

B3637最长上升子序列参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m1ycrqli
此快照首次捕获于
2024/10/07 09:48
去年
此快照最后确认于
2025/11/04 17:45
4 个月前
查看原帖
CPP
#include <iostream>
using namespace std;
int main(){
	int n,l,k;
	int b[5001][11];
	cin>>n;
	for (int i=1;i<=n;i++){
		cin>>b[i][1];
		b[i][2]=1;
		b[i][3]=0;
	}
	for (int i=n-1;i>0;i--){
		l=k=0;
		for (int j=i+1;j<=n;j++){
			if (b[j][1]>=b[i][1]&&b[j][2]>l){
				l=b[j][2];
				k=j;
			}
		}
		if (l>0){
			b[i][2]=l+1;
			b[i][3]=k;
		}
	}
	k=1;
	for (int j=1;j<=n;j++)
	if (b[j][2]>b[k][2]) k=j;
	cout<<b[k][2];
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...