大佬们,求问为啥我只能过前两点,先不考虑tle
查看原帖
大佬们,求问为啥我只能过前两点,先不考虑tle
557989
Jzh5109楼主2022/1/23 11:58

```#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int lds(vector<int>& v)
{
	int n = v.size();
	vector<int>dp(n, 1);
	vector<int>prve(n, -1);
	for (int i = 1;i < n;i++)
		for (int j = 0;j < i;j++)
		{
			if (v[i] > v[j])
				continue;
			if (dp[j] + 1 > dp[i])
			{
				dp[i] = dp[j] + 1;
				prve[i] = j;
			}
		}
	int max = max_element(dp.begin(), dp.end()) - dp.begin();
	int p = max;
	while (p != -1)
	{
		v.erase(v.begin() + p);
		p = prve[p];
	}
	return dp[max];
}
int main()
{
	int n;
	vector<int>v;
	while(scanf("%d",&n)!=EOF)
	 v.push_back(n);
	cout << lds(v) << endl;
	int cnt = 1;
	while (v.size() > 0)
	{
		int x = lds(v);
		cnt++;
	}
	cout << cnt;
	return 0;
}
2022/1/23 11:58
加载中...