牛客小白月赛4 I.合唱队形

题目链接

题目描述

铁子的班级在毕业晚会有一个合唱节目,到了毕业晚会的时候,他们必须排成一排一起合唱"认错","当然是选择原谅他"等一系列原谅歌曲,但是当队形布置好的时候,领导们觉得队形里最长的连续的女生的长度太小了,但是由于马上要开始演唱,所以最多只能两个人交换位置,问新队形中最长的连续的女生的长度是多少?

输入描述:

第一行一个数字 n 表示铁子班级的总人数。1≤n≤1e5
第二行一个字符串 s 表示最初的队形布置,si=0 表示第i个人是女生,si=1 表示第 i 个人是男生。

输出描述:

输出一行表示答案

示例1

输入

6
101010

输出

3

典型的前缀和题目,我们对每个男生 iii,记录左边连续的女生个数 l1[i]l1[i]l1[i] 和女生个数 l2[i]l2[i]l2[i],记录右边连续的女生个数 r1[i]r1[i]r1[i] 和女生个数 r2[i]r2[i]r2[i]。对某个男生,如果存在一边的连续女生个数不等于女生个数,那一定可以找一个女生与其换位,答案就是 l1[i]+r1[i]+1l1[i]+r1[i]+1l1[i]+r1[i]+1,遍历找最大值即可,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int n,l1[N],r1[N],l2[N],r2[N],ans=0;
char s[N];
int main()
{scanf("%d%s",&n,s+1);for(int i=1;i<=n;i++){s[i]=='0'?l1[i]=l1[i-1]+1:l1[i]=0;l2[i]=(s[i]=='0')+l2[i-1];}for(int i=n;i>=1;i--){s[i]=='0'?r1[i]=r1[i+1]+1:r1[i]=0;r2[i]=(s[i]=='0')+r2[i+1];}for(int i=1;i<=n;i++){if(l1[i-1]!=l2[i-1]||r1[i-1]!=r2[i-1]||s[i]=='0') ans=max(ans,l1[i-1]+r1[i+1]+1);else ans=max({ans,l1[i-1],r1[i+1]});}printf("%d",ans);
}

牛客小白月赛4 I.合唱队形相关推荐

  1. 牛客小白月赛16 小石的签到题(博弈)

    牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...

  2. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

  3. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)

    牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...

  4. 牛客小白月赛65个人题解A-E

    1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...

  5. 牛客小白月赛24 J.建设道路

    牛客小白月赛24 J.建设道路 题目链接 题目描述 牛牛国有 nnn 个城市,编号为 1-n,第 iii 个城市有一个价值 aia_iai​ ,牛国的国王牛阔落特别喜欢在牛牛国旅游,并且他不想每次旅游 ...

  6. 牛客小白月赛4 D.郊区春游

    牛客小白月赛4 D.郊区春游 题目链接 题目描述 今天春天铁子的班上组织了一场春游,在铁子的城市里有 nnn 个郊区和 mmm 条无向道路,第 iii 条道路连接郊区 AiA_iAi​ 和 BiB_i ...

  7. 牛客小白月赛25 C.白魔法师

    牛客小白月赛25 C.白魔法师 题目链接 题目描述 你是一个白魔法师. 现在你拿到了一棵树,树上有 个点,每个点被染成了黑色或白色. 你可以释放一次魔法,将某个点染成白色.(该点不一定是黑色点,也可以 ...

  8. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  9. 牛客小白月赛5 I.区间 (interval)

    牛客小白月赛5 I.区间 (interval) 题目链接 题目描述 Apojacsleam喜欢数组.他现在有一个n个元素的数组a,而他要对a[L]-a[R]进行M次操作:操作一:将a[L]-a[R]内 ...

最新文章

  1. 腾讯AI Lab刷新人脸检测与识别两大测评国际记录,技术日调用超六亿
  2. 求助 windows server2008密码策略修改
  3. 基于 ida 的反汇编转换 Obj 的可行性 笔记(1)
  4. zoj 3209 Dancing links/hust 1017
  5. 数据库中的表还是一定要建索引
  6. sql server代理无法启动_谁说前端不需要懂Nginx反向代理与负载均衡
  7. flink API之Sink入门
  8. Centos7 FastDFS 安装和配置启动
  9. kali linux权限维持,msfconsole权限维持
  10. 古诗词学习-归园田居+牧童+凉州词·其一+马诗+逢雪宿芙蓉山主人+凉州词+别董大+枫桥夜泊+滁州西涧+渔歌子+塞下曲
  11. 福大研究生计算机学硕似录取,2017年福州大学数学与计算机学院专业型硕士研究生拟录取名单...
  12. 解密中概股的“杀手”:做空者
  13. Java开发Mye_Java使用MyEclipse构建webService简单案例
  14. 使用Vscode调试vue代码
  15. Vivado DDS IP核使用、仿真、多相处理和相关计算验证
  16. jQuery 表单数据序列化为json格式
  17. 2020FME博客大赛——解放大脑 经纬度坐标自动重投影至常用投影坐标系
  18. Android APP微信支付开发的步骤
  19. 最大子段和(C++,DP)
  20. 记录一下现在制作的网站

热门文章

  1. 基于BlueZ的C语言蓝牙编程
  2. 曾惊动中国大使馆的欧洲专利流氓迎来中国企业的连续痛击
  3. 假设检验_样本容量选取20211204
  4. popen和system函数的区别 以及 popen打开的FILE指针能否用close替代fclose关闭
  5. 修改文件权限修改的思索
  6. html5实现定位签到,H5+百度地图实现移动端考勤定位打卡
  7. java毕业设计家居体验平台的设计与实现Mybatis+系统+数据库+调试部署
  8. 六世班禅仓央嘉措的诗
  9. 这些东西不宜空腹吃[转]
  10. 并发编程:我对Java并发编程的总结和思考