brz的雪糕

brz的雪糕

https://ac.nowcoder.com/acm/contest/8282/B

前缀和

我们定义一个sum[i]表示1到i一共可以加多少愉悦值,那么这个题目就变成了一个前缀和的问题了,但是要注意的是,题目说吃第一个雪糕的时候可以加1,那么我们只需要在最后的时候加一个1就行。
因为数据很大,所以建议scanf输入,并且暴力的话只能过三分之二的样例
AC代码

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <set>
#include <map>
#include <math.h>
#include <vector>
#include <queue>
#include <string.h>
typedef long long ll;
using namespace std;
#define pi acos(-1.0)
const int maxn = 5e6 + 10;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
int a[maxn], sum[maxn];
int main()
{
    int n, k, q;
    scanf("%d%d%d", &n, &k, &q);
    for (int i = 1; i <= n; ++i)
        scanf("%d", &a[i]);
    sum[1] = 1;
    for (int i = 2; i <= n; ++i)
        if (a[i - 1] != a[i])
            sum[i] = sum[i - 1] + 1;
        else
            sum[i] = sum[i - 1];
    for (int i = 1; i <= q; ++i)
    {
        int l, r;
        scanf("%d%d", &l, &r);
        ll cnt = sum[r] - sum[l] + 1;
        if (cnt >= k)
            puts("Yes");
        else
            puts("No");
    }
}
牛客比赛系列题解 文章被收录于专栏

加油加油

全部评论

相关推荐

面了100年面试不知...:头像换成柯南再试试
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务