题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393

题意:中文题面。

把0看成是-1,并且存一遍前缀和。这样-1和1相等数量的时候前缀和为0,这个特判一次。还有就是区间[l,r]和为0的时候的充要条件是s[r]-s[l]=0,得解。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int maxn = ;
  5. char str[maxn];
  6. int t[maxn], s[maxn];
  7. map<int, int> pos;
  8. int n;
  9.  
  10. int main() {
  11. // freopen("in", "r", stdin);
  12. while(~scanf("%s", str)) {
  13. n = strlen(str);
  14. memset(s, , sizeof(s));
  15. pos.clear();
  16. for(int i = ; i <= n; i++) {
  17. if(str[i-] == '') t[i] = ;
  18. if(str[i-] == '') t[i] = -;
  19. s[i] = s[i-] + t[i];
  20. }
  21. int ret = ;
  22. for(int i = ; i <= n; i++) {
  23. if(s[i] == ) ret = max(ret, i);
  24. if(pos.find(s[i]) == pos.end()) pos[s[i]] = i;
  25. else {
  26. ret = max(ret, i-pos[s[i]]);
  27. }
  28. }
  29. printf("%d\n", ret);
  30. }
  31. return ;
  32. }

[51NOD1393]0和1相等串(前缀和,map)的更多相关文章

  1. 1393 0和1相等串 51nod

    1393 0和1相等串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等. I ...

  2. 51nod 1393:0和1相等串

    1393 0和1相等串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等. I ...

  3. 51nod 1393 0和1相等串 思路 : map存前缀和

    题目: 思路:把'0'当成数字-1,'1'当成数字1,求前缀和,用map更新当前前缀和最早出现的位置.(用map而不用数组是因为可能会出现负数) 当前缀和的值之前出现过,比如i = 10时,sum = ...

  4. 1393 0和1相等串 鸽笼原理 || 化简dp公式

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393 正解一眼看出来的应该是鸽笼原理.记录每个位置的前缀和,就是dp[i ...

  5. Centos命令行窗口显示一大串前缀,777;notify;Command completed;的解决方法

    How to remove the return code from the terminal prompt In addition to the PS1 environment variable, ...

  6. HDU4821---字符串hash,map判重

    这是2013年长春区域赛的铜牌题...然而第一次做的时候一直觉得会超时的..最后才知道并没有想象中的那么恐怖: 这题有两个注意的地方: (1)h[i] = h[i-1] * seed + s[i] - ...

  7. hdu 2197 求长度为n的本原串 (快速幂+map)

    Problem Description由0和1组成的串中,不能表示为由几个相同的较小的串连接成的串,称为本原串,有多少个长为n(n<=100000000)的本原串?答案mod2008.例如,10 ...

  8. Codeforces 1006C:Three Parts of the Array(前缀和+map)

    题目链接:http://codeforces.com/problemset/problem/1006/C (CSDN又改版了,复制粘贴来过来的题目没有排版了,好难看,以后就截图+题目链接了) 题目截图 ...

  9. bzoj 4236: JOIOJI【前缀和+map】

    设sj,so,si分别是J O I的个数前缀和,然后要求求最长(l,r)满足sj[r]-sj[l-1]==so[r]-so[l-1]==si[r]-si[l-1],化简一下就是满足so[r]-so[l ...

随机推荐

  1. C#中Attribute的继承

    在C#中Attribute是个非常有用的语法,本文不会介绍Attribute的使用方法,如果想了解Attribute的详细信息请查阅MSDN及网上相关文档.C#中的Attribute有两个地方是和继承 ...

  2. HAVING用法详解

    HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似.WHERE 搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组操作之后应用 ...

  3. 【转】Web UI自动化测试原理

    目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等.  这些框架都可以操作Web中的控件,模拟用户输入,点击等 ...

  4. android 百度地图定位开发1

    首先注册成为百度开发者 然后进入百度开发者中心 点击LBS 跳到下一个页面 点击Android 开发 里面的基础地图 进入  点击获取密钥 进入   点击创建应用 进入     应用名称自己填 应用类 ...

  5. C#调用opencv

    最经做一个项目,底层调用openCV编写的图像处理程序,用户界面采用C#编写. 于是学习了相关技术,总结如下: C#编写的是托管代码,编译生成微软中间语言,而普通C++代码则编译生成本地机器码,这两种 ...

  6. html5 canvas 笔记一(基本用法与绘制图形)

    <canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...

  7. WEB前端常用网站收集

    WEB前端常用网站收集整理 w3school.w3schools 前端里.脚本之家.素材家园 17素材.frontopen NEC更好的CSS方案.一些常用的JS实例 Bootstrap  官网  h ...

  8. [转]clrDateTime to Dynamics AX TransDate

    转自:https://community.dynamics.com/ax/f/33/t/30791.aspx TransDate是一种只有日期,没有时间的类型 utcDateTime=Global:: ...

  9. session 加入redis的实现代码方式

    session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们可以看到这样的话&quo ...

  10. require()与 require_once()、 include与include_once()