UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十四场
A.JOIOJI
•传送门
[1]:BZOJ
[2]:洛谷
•思路
在一个区间(L,R]内,JOI的个数是相等的,也就是R[J]-L[J]=R[O]-L[O]=R[I]-L[I],
利用前缀和的思想,用a,b,c分别代表JOI的前缀和
在(i,j]区间里,aj-bj=ai-bi,即代表a,b的增量相同,增量为(aj-bj)(或者说(ai-bi)),
也就是在(i,j]区间内a,b增加的个数相同,也就是(i,j]区间内a,b个数相同为(aj-bj)(或者说(ai-bi))个,
那么aj-bj==ai-bi&&bj-cj==bi-ci的话,就是在(i,j]区间里,JOI的个数相同,个数值为此差值
求相等的个数的最大值,可以记录一下,然后找最大
•代码
#include<bits/stdc++.h>
using namespace std;
char s[];
int main()
{
int n;
cin>>n;
int a=,b=,c=;//JOI的个数前缀和
scanf("%s",s+);
map<pair<int,int>,int> mp;
map[make_pair<,>]=;
int ans=;
for(int i=;i<=n;i++)
{
if(s[i]=='J') a++;
if(s[i]=='O') b++;
if(s[i]=='I') c++;
if(mp.count(make_pair(a-b,b-c)))//找到此差值,
ans=max(ans,i-mp[make_pair(a-b,b-c)]);//(i,j]区间里右边界-左边界即为个数
else
mp[make_pair(a-b,b-c)]=i;//发现新的差值,记录此位置为左边界
}
cout<<ans<<endl;
}
E: 挂饰
•传送门
[1]:洛谷
[2]:BZOJ
UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十四场的更多相关文章
- UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十六场
E: 飞碟解除器 •题目描述 wjyyy在玩跑跑卡丁车的时候,获得了一个飞碟解除器,这样他就可以免受飞碟的减速干扰了.飞碟解除器每秒末都会攻击一次飞碟,但每次只有p/q的概率成功攻击飞碟.当飞碟被成功 ...
- UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十五场
传送门 A: Colorful Subsequence •题意 给一个长为n的小写字母序列,从中选出字母组成子序列 问最多能组成多少种每个字母都不相同的子序列 (不同位置的相同字母也算是不同的一种) ...
- UPC 2019年第二阶段我要变强个人训练赛第十六场
传送门: [1]:UPC比赛场 [2]:UPC补题场 F.gu集合(数论) •题目描述 题目描述: Dew有一个长为n的集合S. 有一天,他想选k个不同的元素出来做游戏. 但是Dew只有两只手,所以他 ...
- UPC 2019年第二阶段我要变强个人训练赛第六场
传送门 A.上学路线 题目描述 小D从家到学校的道路结构是这样的:由n条东西走向和m条南北走向的道路构成了一个n*m的网格,每条道路都是单向通行的(只能从北向南,从西向东走). 已知小D的家在网格的左 ...
- 2019年第二阶段我要变强个人训练赛第八场 B.序列(seq)
传送门 B.序列(seq) •题目描述 给出一个长度为n的序列a,每次对序列进行一下的某一个操作. •输入 第一行两个整数n,q表示序列长度和操作个数. 接下来一行n个数,表示序列a. 接下来q行表示 ...
- 备战省赛组队训练赛第十四场(UPC)
codeforces:传送门 upc:传送门 外来题解: [1]:https://blog.csdn.net/ccsu_cat/article/details/86707446 [2]:https:/ ...
- UPC个人训练赛第十五场(AtCoder Grand Contest 031)
传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...
- 备战省赛组队训练赛第十八场(UPC)
传送门 题解:by 青岛大学 A:https://blog.csdn.net/birdmanqin/article/details/89789424 B:https://blog.csdn.net/b ...
- 备战省赛组队训练赛第十六场(UPC)
传送门 题解: by 烟台大学 (提取码:8972)
随机推荐
- WebFlux 集成 Thymeleaf 、 Mongodb 实践 - Spring Boot(六)
这是泥瓦匠的第105篇原创 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-5-thymeleaf ...
- Hadoop 学习之路(一)—— 分布式文件系统 HDFS
一.介绍 HDFS (Hadoop Distributed File System)是Hadoop下的分布式文件系统,具有高容错.高吞吐量等特性,可以部署在低成本的硬件上. 二.HDFS 设计原理 2 ...
- 长春理工大学第十四届程序设计竞赛(重现赛)B
B Bowling Game 题目链接:https://ac.nowcoder.com/acm/contest/912/B 题目 CUST的队员打完省赛后,小r带着大家去打保龄球. 保龄球是一项难度非 ...
- Linux实例/etc/fstab文件配置错误导致系统启动异常
Centos 7.3系统 问题现象: 阿里云ECS升级配置后重启,SSH连接不上.登录控制台远程连接ECS,出现以下界面. 提交工单阿里云反馈:https://help.aliyun.com/kno ...
- Nagios安装配置教程(一)基本了解
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态, 交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信 ...
- XAML与C#与WPF三者到底有什么关系?
XAML是.NET体系开发程序或者网页时前台编程的一种布局方式或者说开发语言,可以比较自由的用标签的方式进行布局,借鉴了HTML和XML等语言的风格,并且加入了一些动画等的实现.C#则是后台逻辑开发用 ...
- C语言学习书籍推荐《Practical C++ Programming》下载
下载链接 :点我 C++ is a powerful, highly flexible, and adaptable programming language that allows software ...
- 解决Tomcat catalina.out 不断膨胀,导致磁盘占用过大的问题
到服务器上看了一下任务中心的日志情况,膨胀的很快,必须采取措施限制其增长速度. 我们采用Cronlog组件对此进行日志切分,官网http://cronolog.org/一直未能打开,只能从其它地方寻找 ...
- Bzoj 2064 分裂 题解
2064: 分裂 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 570 Solved: 350[Submit][Status][Discuss] De ...
- GPS常识-B版(简)
第一章 绪论 1.简述GPS系统的特点有哪些? 在测绘工程中有如下优点:(1)定位精度高(2)观测时间短(3)测站间无需通视(4)可提供地心坐标(5)操作简便(6)全天候作业(7)功能多.应用广 GP ...