20分求助
  • 板块P1799 数列
  • 楼主Access57
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/1/7 20:41
  • 上次更新2023/10/28 12:42:04
查看原帖
20分求助
267428
Access57楼主2022/1/7 20:41

用最长上升子序列做的。。。。。

请dalao帮忙看看

#include <bits/stdc++.h>
using namespace std;
int s,maxx;
int num[1010];
int solution[1010];
int main()
{
	memset(num,0,sizeof(num));
	memset(solution,0,sizeof(solution));
	cin>>s;
	for(int i=0; i<s; i++) cin>>num[i];
	solution[0]=1;
	for(int j=0; j<s; j++)
	{
		maxx=1;
		for(int i=0; i<j; i++)
		{
			if(solution[i]+1>maxx&&num[j]>num[i]&&num[j]-num[i]<=j-i) maxx=solution[i]+1;
		}
		solution[j]=maxx;
		if(solution[j]==1&&num[j]-j<0)  solution[j]=0;
	}
	maxx=0;
	for(int j=0; j<s; j++)
		if(maxx<solution[j]) maxx=solution[j];
	cout<<maxx;
}
2022/1/7 20:41
加载中...