求助
  • 板块学术版
  • 楼主wang1234567
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/8/2 21:05
  • 上次更新2023/11/4 12:11:55
查看原帖
求助
305900
wang1234567楼主2021/8/2 21:05

一本通上的一道题,这是网址

我寻思着这不就是个双向最长下降子序列,从前往后和从后往前都做一遍dp模板不就行了,于是蒟蒻就自信地交了如下代码:

#include<bits/stdc++.h>
using namespace std;
int k,n,a[10000],f1[10000],f2[10000],maxn;
int main()
{
	cin>>k;
	while(k--)
	{
		maxn=0;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			f1[i]=1;
			f2[i]=1;
		}
		for(int i=2;i<=n;i++)
		{
			for(int j=1;j<i;j++)
				if(a[i]<a[j])
					f1[i]=max(f1[j]+1,f1[i]);
			maxn=max(maxn,f1[i]);
		}
		for(int i=n-1;i>=1;i--)
		{
			for(int j=n;j>i;j--)
				if(a[i]<a[j])
					f2[i]=max(f2[j]+1,f2[i]);
			maxn=max(maxn,f2[i]);
		}
		cout<<maxn<<endl;
	}
	return 0;
}

结果WA了三个点,大佬们知道蒟蒻那里疏漏了吗?棒棒蒟蒻吧!

2021/8/2 21:05
加载中...