其他分享
首页 > 其他分享> > 做题记录 Luogu P1108

做题记录 Luogu P1108

作者:互联网

P1108 低价购买 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

坑点有亿点多。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 5005
int n, a[N], f[N], t[N], maxx = 1, sum;
signed main()
{
	scanf("%d", &n);
	for(int i = 1; i <= n; i++)
	{
		scanf("%d", &a[i]);
		f[i] = 1;
	}
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j < i; j++)
		{
			if(a[j] > a[i])
			{
				f[i] = max(f[i], f[j] + 1);
			}
		}
		maxx = max(maxx, f[i]);
		for(int j = 1; j < i; j++)
		{
			if(f[i] == f[j] && a[i] == a[j])
			{
				t[j] = 0;
			}
			else if(f[i] == f[j] + 1 && a[j] > a[i])
			{
				t[i] += t[j];
			}
		}
		if(!t[i])
		{
			t[i] = 1;
		}
	}
	for(int i = 1; i <= n; i++)
	{
		if(f[i] == maxx)
		{
			sum += t[i];
		}
	}
	printf("%d %d", maxx, sum);
	return 0;
}

标签:maxx,记录,int,Luogu,long,P1108,max,define
来源: https://www.cnblogs.com/fanypcd/p/15017371.html