36分卡测试点5
查看原帖
36分卡测试点5
890021
user13657632011楼主2024/4/21 10:37
#include <bits/stdc++.h>
using namespace std;
const int N = 10000;
int ans = 0;

struct gz
{
	int l, w;
};

bool temp(gz a, gz b)
{
	if (a.l == b.l)
	{
		return a.w < b.w;
	}
	return a.l < b.l;
}
int dp[N];
int main()
{
	long long n;
	cin >> n;
	gz gzs[n];
	for (int i = 0; i < n; i++)
	{
		cin >> gzs[i].l >> gzs[i].w;
	}
	sort(gzs, gzs + n, temp);
	dp[0] = 0;
	for (int i = 1; i <= n; i++)
	{
		dp[i] = INT_MAX;
		for (int j = i - 1; j >= 0; j--)
		{
			if (gzs[i - 1].w >= gzs[j].w)
			{
				dp[i] = min(dp[i], dp[j] + 1);
			}
		}
		ans = max(dp[i], ans);
	}
	cout << ans << endl;
	return 0;
}

也不知道哪有问题

2024/4/21 10:37
加载中...