1391 01串
题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

 收藏
 关注

给定一个01串S,求出它的一个尽可能长的子串S[i..j],满足存在一个位置i<=x <j, S[i..x]中0比1多,而S[x + 1..j]中1比0多。求满足条件的最长子串长度。
Input
一行包含一个只由0和1构成的字符串S。 S的长度不超过1000000。
Output
一行包含一个整数,表示满足要求的最长子串的长度。
Input示例
10
Output示例
0

sum[i]:子串[1,i]中0个数与1的个数的差

此题即是要找到一个点x使得sum[l]<sum[x]>sum[r],其中l<x<r且r-l要尽可能的大

单调栈即可,模拟也行

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[1000005];
int sum[1000005], c[2] = {1,-1};
int main(void)
{int i, n, p, q, bet;scanf("%s", str+1);n = strlen(str+1);for(i=1;i<=n;i++)sum[i] = sum[i-1]+c[str[i]-'0'];p = 1, q = n;while(str[p]=='1')  p++;while(str[q]=='0')  q--;bet = -10000005;for(i=p;i<q;i++)bet = max(bet, sum[i]);p = n, q = 1;for(i=0;i<=n;i++){if(sum[i]<bet)p = min(p, i), q = max(q, i);}printf("%d\n", max(q-p, 0));return 0;
}

51nod-1391:01串相关推荐

  1. NYOJ 252 01串 dp

    01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有"11"子串的这种长度的0 ...

  2. 1593: 01串(找规律)

    1593: 01串 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 325 Solved: 143 [Submit][Status][Web Board] ...

  3. 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。

    //编写人:yike //时间:2021/12/25/17:11 //问题描述 // //对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: // //00000 / ...

  4. 【无码专区5】01串(大讨论+构造)

    因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dl ...

  5. 3.14 01串排序

    将01串首先按照长度排序,其次按1的个数的多少排序,最后按ASCII码排序. 输入样例: 10011111 00001101 10110101 1 0 1100 输出样例: 0 1 1100 1010 ...

  6. 【Hihocoder - offer编程练习赛93 套题题解】交错01串(贪心,暴力)方格矩阵高度(模拟)数对(STLmultiset)修整土地(网络流)

    A: 题干: 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi要将一个01串S传输给小Ho,由于S非常长,所以小Hi决定用长度为N的2个数组A = [A1, A2, ...

  7. 【nyoj - 252】 01串(简单dp)

    题干: 01串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 输入 第一行有一个整数n(0<n<=100),表示有n组测试数据; 随后有n行,每行有一个整数m(2 ...

  8. 01串(51Nod-1391)

    题目 给定一个01串S,求出它的一个尽可能长的子串S[i..j],满足存在一个位置i<=x <j, S[i..x]中0比1多,而S[x + 1..j]中1比0多.求满足条件的最长子串长度. ...

  9. 智乃的01串打乱(思维+暴力)

    题目连接 https://ac.nowcoder.com/acm/contest/23478/D 题面 思路 因为希望我们打乱后的01串和原串至少有一个位置不同,那么我们只需要随便找到一个值为1的位置 ...

最新文章

  1. 让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录一键生成SCSS/LESS结构,敏捷开发必备插件!!!
  2. Net设计模式实例之享元模式( Flyweight Pattern)
  3. 基于silverlight4(beta)的摄像头应用(Beta2)发布
  4. 数字信号处理第一章 离散时间信号与系统
  5. 掌握这些Android开发热门前沿知识,跳槽薪资翻倍
  6. 《Adobe InDesign CS6中文版经典教程》—第1课1.5节修改文档的缩放比例
  7. 《自然》年度十大人物:天才曹原居首 贺建奎来去匆匆
  8. 首款“印度制造”的微处理器 AJIT 面世!
  9. linux脚本中使用转义括号,Linux之shell中的大括号、中括号、小括号的使用详解+多示例...
  10. 关于被调函数形参:SqList L、SqList L、SqList *L 的区别
  11. 微软的teredo服务器,win10系统通过teredo连接ipv6的操作方法
  12. 用html+css作个简单的九宫格
  13. 产品读书《文案训练手册》
  14. 降低OLED屏幕功耗的方法
  15. 政务服务一网通办建设方案(ppt)
  16. Android实时语音聊天
  17. setLenient(true/false)
  18. web开发要学习什么技术,HTML实体字符列表
  19. 任天堂服务器维护12月1,《怪物猎人:崛起》太火爆!任天堂服务器紧急维护!会是独占游戏么?...
  20. 手动清除灰鸽子***

热门文章

  1. 为什么都建议学java而不是python-是不是Python比Java更容易学,更容易就业?
  2. 自学python能学成吗-Python能自学成功吗?
  3. 语音识别介绍(上篇)
  4. JavaScript var语句简析
  5. java url压缩_URL压缩算法的短地址
  6. 【设计模式笔记】抽象工厂模式
  7. 【链表】牛客网:合并两个排序的链表
  8. x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1
  9. httplistener java_Java监听器listener的介绍
  10. jQuery的get()、map()、map().get().join()简单应用