CodeForces 1082E Increasing Frequency 计数 递推 思维

时间:2021-02-23 14:17:02   收藏:0   阅读:0

原题链接

题意


思路



AC代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 500000;

int mx[N + 5];
int cn[N + 5];
int xn[N + 5] = {0};
int aa[N + 5];
int n, c;

int main()
{
	scanf("%d%d", &n, &c);
	cn[0] = 0;
	xn[0] = 0;
	for (int i = 1; i <= n; ++i)
	{
		scanf("%d", &aa[i]);;
		cn[i] = cn[i - 1] + (aa[i] == c);
	}
	int ans = 0;
	for (int i = 1; i <= n; ++i)
	{
		++xn[aa[i]];
		mx[aa[i]] = max(mx[aa[i]], cn[i - 1] - xn[aa[i]] + 1);
		ans = max(cn[n] - cn[i] + xn[aa[i]] + mx[aa[i]], ans);
	}
	printf("%d", ans);;
	return 0;
}

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!