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

题意
有一个叫雪糕之王的家伙要吃雪糕。
雪糕之王每次吃雪糕时会选定一个区间[L,R],从左向右吃雪糕。

假如雪糕之王第 i 个吃掉的雪糕和上一个吃掉的类型相同,那么 雪糕之王 的愉悦值不会提升,否则愉悦值会 +1。
例如,当选定区间为1 1 2 3时,雪糕之王的愉悦度为3(有连续的相同种类雪糕1 1);
而当选定区间的雪糕为1 2 3 4 时,大王的愉悦度为4。

当雪糕大王吃第一块雪糕时愉悦度一定+1。(这个很好理解,每个区间内的第一块雪糕一定会让大王愉悦度+1)

第一行给出三个数字n(雪糕的个数),k(愉悦度),p(区间数)。
第二行给出n个数字,分别代表每块雪糕的种类。
接下来的p行中,每行给出两个数字L,R(代表从第L块雪糕开始吃,到第R个雪糕结束)。

对于每个区间,请问大王吃完雪糕后愉悦度是否能达到k,能输出Yes,不能则输出No

数据范围

思路
在A题把我憋死之后,我把希望就放在了B题上。
首先看了一下题之后,注意到数据和时间限制,就感觉这题已经不能暴力了。

这道题的做法就是建立一个h数组,h[i]代表的是在第i个数字之前(包含第i个数字),有多少对相邻且相同的数字。

h[1]=0;    //第一个数字对应的h[1]=0(就1个数字)
for(int i=2; i<=n; i++)
{if(a[i]==a[i-1])h[i]=h[i-1]+1;elseh[i]=h[i-1];
}

然后对于每个输入的区间,我们先假设没有相邻一样的雪糕,愉悦度就应该是s-l+1
然后我们再看一下这个区间里有多少对相邻一样的,减去就好。

ans-=(h[r]-h[l]);

直接放代码,「伊丽莎白」!

代码

//这里不要用cin,会T掉
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e6+50;
int a[maxn],h[maxn];
int n,k,q,l,r;
int main()
{scanf("%d%d%d",&n,&k,&q);for(int i=1; i<=n; i++)scanf("%d",&a[i]);h[1]=0;for(int i=2; i<=n; i++){if(a[i]==a[i-1])h[i]=h[i-1]+1;elseh[i]=h[i-1];}for(int i=1; i<=q; i++){scanf("%d%d",&l,&r);int ans=r-l+1;ans-=(h[r]-h[l]);if(ans<k)printf("No\n");elseprintf("Yes\n");}
}

倒霉的一天,从坏心情开始,到没爆0结束。

牛客练习赛72—B:brz的雪糕相关推荐

  1. 牛客练习赛72-Abrz的杯子brz的雪糕

    时隔多日的做题题解 题目: Abrz的杯子 链接: Abrz的杯子 题目大意 给你 nnn 个杯子,和 111 ~ mmm 数字,要求你将数字填入 这nnn个杯子当中 满足一下这么几个要求 111 ~ ...

  2. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  4. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  5. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  6. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  7. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  8. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  9. 妄想集合(牛客练习赛90)

    妄想集合(牛客练习赛90) 题意: 开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作. Quant l r x\text{Quant l r x}Quant l r x:往编号在 ...

最新文章

  1. 机器学习(9)决策树(决策树分类鸢尾花)
  2. 设置为true有什么区别_腻子粉和腻子膏到底有什么区别,腻子粉厂家来为你讲解...
  3. jQuery选择器整理
  4. 20154319 《网络对抗技术》后门原理与实践
  5. Ubuntu18.04.1系统安装mmdetection(含torch、torchvision、mmcv-full)
  6. java character类
  7. 写给软件工程师的 30 条建议
  8. js返回上级页面的方法(亲测)
  9. iOS平台基于ffmpeg的视频直播技术揭秘
  10. 9.运输层(3)---TCP
  11. 怎么才能免费下载CSDN资源啊
  12. Delphi xe5 StyleBook的用法(待续)
  13. 12月18日科技资讯|支付宝、微信回应3D面具破解人脸识别;ofo 否认「发币」;Kafka 2.4.0 发布
  14. 字符串(字符串的拼接及一些常用方法)
  15. Servlet笔记四(JSP技术)
  16. 数据结构约瑟夫环实验报告
  17. 看计算机文档有浏览记录吗,怎样查找电脑文件-怎么查看电脑浏览过的文件 – 手机爱问...
  18. C#NetFrame3.5 JsonHelper
  19. python 运算符的优先顺序
  20. 邮箱服务发送配置SMTP授权码

热门文章

  1. 软著申请个人实名认证流程
  2. linux给目录分配空间,Linux 分配/home的磁盘空间给根目录
  3. inv在线计算机,INV3062A
  4. 建立软件工程之动态模型(状态图)步骤
  5. dpkg: warning: files list file for package ‘‘ missing; assuming package has no files currently insta
  6. Linux多开微信,在Deepin V20/15.11系统下实现微信多开的方法
  7. 开源项目——小Q聊天机器人V1.0
  8. 程序员开工指南,专治不想上班!
  9. 想学Python,这68个内置函数你一定要搞定!
  10. Jenkins ssh 远程启动 nohup