选择客栈
这个题,因为他没有说两个人的顺序对答案有影响,所以我们可以考虑固定一个人为右端点,记录最靠近这个右端点的人的可以去的咖啡店
如果说这个点大于这种颜色的客栈,那么就可以在之前的颜色中乱选,就是可以把之前有的所有这个颜色的客栈记为贡献
好像就口胡完了
#include <cstdio>
const int Maxn = 2e5 + 5;
int N, K, P, Now;
int Ans, Color, Price;
int Last[Maxn], Sum[Maxn], Cnt[Maxn];
int main()
{
    scanf("%d %d %d", &N, &K, &P);
    for (int i = 0; i < N; ++i)
    {
        scanf("%d %d", &Color, &Price);
        if (Price <= P)Now = i;
        if (Now >= Last[Color])Sum[Color] = Cnt[Color];
        Last[Color] = i;
        Ans += Sum[Color];
        ++Cnt[Color];
    }
    printf("%d\n", Ans);
} 
京公网安备 11010502036488号