p1968

我觉得这个评测机和我有仇,写了read+getchar都会超时这么多,最后好像是ios::sync_with_stdio(false);惹的祸...

昨天想找一些水题来写,就看到了这个模拟"水题",想了一下午都不知道怎么搞.

已知一些牛的颜色和位置,求连续相同颜色或连续两种颜色数量相同的区间右端点位置减左端点位置最长的距离.复杂度小于n^2.

(果然还是我太菜了,而且只会二分,对于这种题就很难搞.)

首先,这道题的答案不满足单调性,尺寸并不是在一个值之后就全部能取到的那种.所以不能写二分.

但是本题是一个模拟啊,不要想的那么恐怖.

先sort一下.

连续相同颜色只要从前向后扫一遍就好.

数量相同的话,对于每一个牛可以求出前缀和,维护一个数组记录前缀和i第一次出现的位置wei[i](在原结构体数组中的位置),如果当前前缀和数组上没有值,就把自己记录下来.否则可以用它来更新答案:ans=max(ans,o[i].x-o[wei[sum]+1].x);

这个过程中sum可能会变成负数,可以先把sum赋值成>=n的数,同时注意wei数组的大小.

wei[0]一定是0,为了区分0,更新过的和未更新过的,可以写一个循环使数组赋值为-1,然后写一句话:wei[sum]=0后再开始循环.

 

using namespace std;
inline int read()
{int x=0,f=1;char ch=getchar();while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}return x*f;
}
int i,f;
char b;
int n,ans,sum;
int wei[300001];
struct cow
{int x,t;
}o[100010];
inline bool Orz(cow a,cow b)
{return a.x<b.x;
}
int main()
{n=read();for(i=1;i<=n;++i){o[i].x=read();b=getchar();if(b=='G') o[i].t=1;else       o[i].t=-1;}sort(o+1,o+1+n,Orz);for(i=1;i<=n;++i){for(f=i+1;o[f].t==o[i].t&&f<=n;++f){}f--;ans=(ans>o[f].x-o[i].x?ans:o[f].x-o[i].x);i=f;}for(i=0;i<=200000;++i)wei[i]=-1;sum=100000;wei[sum]=0;for(i=1;i<=n;++i){sum+=o[i].t;if(wei[sum]==-1)wei[sum]=i;elseans=(ans>o[i].x-o[wei[sum]+1].x?ans:o[i].x-o[wei[sum]+1].x);}cout<<ans;
}

 

转载于:https://www.cnblogs.com/qywyt/p/9680359.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费!200块全志XR806开源鸿蒙开发板试用

一板难求的当下&#xff0c;如果上天突然降临一次开发板免费用的活动&#xff0c;我只想说三个字&#xff1a;手慢无&#xff01;为了让开发者小哥哥小姐姐们体验搭载安谋科技STAR-MC1处理器&#xff0c;面向IoT领域的全志XR806开发板&#xff0c;极术社区特推出2022年新年活动…

你们还留恋windows什么呢?

为什么80%的码农都做不了架构师&#xff1f;>>> 我最近看到一个报道&#xff0c;节录如下&#xff1a; --------------------------------------------- ARM全球总裁Tudor Brown 5月3日表示&#xff0c;预期2015年全球移动PC总量就会达到7.5亿台以上&#xff0c; …

MDK调试:设置断点处,代码运行的次数

https://www.cnblogs.com/ramlife/articles/14024516.html

卓老师的这些动图对电子理解真的很有用

01 串行通信在头条电子森林博客中看到一些显示电子系统中信号波形的动图&#xff0c;有助于帮助我们理解传输的机理。特转载如下。1、SPI传输▲ 图1 SPI 数据传输▲ 图1.2 SPI数据传输&#xff08;2&#xff09;▲ 图1.3 SPI时序信号2、I2C传输▲ 图1.2.1 I2C总线以及寻址方…

国内网络安全公司、社区简介

国内网络安全公司简介<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1&#xff0e;http://www.symantec.com/region/cn赛门铁克中国一家从事网络安全服务的公司&#xff0c;挺供网络安全产品下载、整体网络安全解决方案。2&…

一句话输出没有结束符的字符串

编程时往往存在这种情况&#xff1a; 函数接口传给你一个没有“\0”结尾的字符串str和他的长度str_len&#xff0c;调试的时候你需要将其打印出来。 一般人都会这么做&#xff1a; void print_str(const char* str, unsigned int str_len) { unsigned int i0; for (; i < …

动态规划:树形DP-景点中心(树的带权重心)

话说宁波市的中小学生在镇海中学参加计算机程序设计比赛&#xff0c;比赛之余&#xff0c;他们在镇海中学的各个景点参观。镇海中学共有n个景点&#xff0c;每个景点均有若干学生正在参 观。这n个景点以自然数1至n编号&#xff0c;每两个景点的编号均不同。每两个景点之间有且只…

bootscripttable前端排序无效_前端你应该知道的八条bug分享给你们

1: 为什么列表的数据不要让后端同学返回对象&#xff0c; 而应该返回数组&#xff1f;返回对象我们前端直接遍历有没问题啊&#xff0c; 可以正常显示&#xff0c;那是因为你没有遇到下面描述的情况bug现象1:「我明明把3这个key定义在了第二个位置&#xff0c; 但是每次打印出来…

干货|手把手教你自制六足仿生机器人

摘要&#xff1a;经过大一那次失败之后&#xff0c;我决定暂时停止该项目的开发&#xff0c;转而先去学习那些有关嵌入式开发的基础知识&#xff0c;等以后有能力的时候再去独立完成这个六足机器人。很幸运的是在我大学本科即将结束的时候&#xff0c;我已掌握了足够的知识来完…

STM32F4 HAL 库开发报错:Hal_StatusTypeDef is undefined的解决办法

1、直接在头文件出添加#include "stm32f4xx_hal.h"即可。

7多态与多态性

多态 多态指的是一类事物有多种形态&#xff0c;比如 动物有多种形态&#xff1a;人&#xff0c;狗&#xff0c;猪 import abc class Animal(metaclassabc.ABCMeta): #同一类事物:动物abc.abstractmethoddef talk(self):passclass People(Animal): #动物的形态之一:人def talk(…

Comet:基于 HTTP 长连接的“服务器推”技术

http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ “服务器推”技术的应用 请访问 Ajax 技术资源中心&#xff0c;这是有关 Ajax 编程模型信息的一站式中心&#xff0c;包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。 传统模式的 We…

lol最克制诺手的英雄_LOL:哪些英雄之间非常克制,不管怎么打,遇到就输了?...

大家好&#xff0c;我是你们的老朋友小黑君。在英雄联盟里&#xff0c;英雄们总有克制或者被克制的英雄&#xff0c;就比如“剑魔克制阿卡丽”&#xff0c;尤其是接下来我们要说的这几对&#xff0c;在对局中遇到基本上就输了&#xff01;冰霜女巫克制妖姬冰霜女巫的出场率一直…

聊聊内卷之下,直博和读完硕士再读博该怎么选择?

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;转发一篇考研读博的文章&#xff0c;希望对大家求学生涯有所帮助。大家好&#xff0c;我是千与千寻&#xff0c;在上一篇推送之中&#xff0c;我们讨论了&#xff0c;五年之内博士是否会出现内卷&#xff0c;阅读量相当的高…

Android 位置服务——BaiduLocation的使用

Android 位置服务——BaiduLocation的使用 原文:Android 位置服务——BaiduLocation的使用版权声明&#xff1a;本文为博主原创文章&#xff0c;欢迎转载&#xff0c;转载请在文章显眼处说明文章出处并给出连接。 https://blog.csdn.net/To_be_Designer/article/details/486854…

推挽输出和开漏输出的区别

https://zhuanlan.zhihu.com/p/41942876

asp.net通过登录后修改个人信息_微信号终于可以修改了!快来改一个

上周&#xff0c;微信在安卓端开启了“修改微信号”功能的灰度测试&#xff0c;这也预示着这项新功能很快就能和我们见面了。果不其然&#xff0c;就在刚才微信正式上线了修改微信号的功能&#xff0c;大家期盼多年的功能终于上线了&#xff01;&#xff01;&#xff01;安卓用…

python进程池pool_python多任务--进程池Pool

进程池Pool在利用Python进行系统管理的时候&#xff0c;特别是同时操作多个文件目录&#xff0c;或者远程控制多台主机&#xff0c;并行操作可以节约大量的时间。当被操作对象数目不大时&#xff0c;可以直接利用multiprocessing中的Process动态成生多个进程&#xff0c;但如果…

数据集 结构化数据

数据集 一个数据的集和&#xff0c;每一行是一条数据记录&#xff0c;每一列是一个字段。 我们把表中的每一行叫做一个“记录”&#xff0c;每一个记录包含这行中的所有信息&#xff0c;就像在通讯录数据库中某个人全部的信息。字段是比记录更小的单位&#xff0c;字段集合组成…

STM32 ADC 单次模式、连续模式、扫描模式(转载)

ADC单通道&#xff1a; 要求进行一次ADC转换&#xff1a;配置为单次模式使能&#xff0c;扫描模式失能。这样ADC的这个通道&#xff0c;转换一次后&#xff0c;就停止转换。 要求进行连续ADC转换&#xff1a;配置为连续模式使能&#xff0c;扫描模式失能。这样ADC的这个通道&…