选择客栈

选择客栈

https://ac.nowcoder.com/acm/problem/16594

选择客栈

这个题,因为他没有说两个人的顺序对答案有影响,所以我们可以考虑固定一个人为右端点,记录最靠近这个右端点的人的可以去的咖啡店

如果说这个点大于这种颜色的客栈,那么就可以在之前的颜色中乱选,就是可以把之前有的所有这个颜色的客栈记为贡献

好像就口胡完了

#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);
}
有的没的 文章被收录于专栏

RT,有的没的

全部评论

相关推荐

投递阿里巴巴控股集团等公司10个岗位 >
点赞 评论 收藏
转发
7 3 评论
分享
牛客网
牛客企业服务