51nod——1391 01串(字符串、前缀和)

摘要:
求出每个位置x的左区间[0,x]中1大于0的数量,以及右区间(x,n-1)中0大于1的数量(小于等于负)。这样,当我们判断前缀是否大于1或大于0时,就可以判断前缀与零之间的大小关系。更新答案:对于字符串中每个位置x的左侧,前缀和必须小于零。长度是下标加1。如果它大于零(设置为k),则找到第一个位置,并且在该位置的左侧有超过k个字符串。这样,在这个位置之前切割字符串,将留下符合要求的最长字符串。右侧也是如此。每次枚举位置x时,都会更新最大l+r。

好像这题是4级题下放2级?

预处理:求每个位置 x 左区间 [ 0 , x ] 中 1 比 0 多的数量和右区间 ( x , n - 1 ] 中 0 比 1 多的数量(少就是负的)。相当于求两个前缀和。这样在判断 1 多还是 0 多时判断前缀和与零的大小关系就行了。

更新答案:对于字符串中的每个位置 x 的左侧,要求前缀和小于零。如果小于零,符合要求,长度即下标加一。如果大于零(设为 k ),要从头开始,找到第一个位置,这个位置的左侧 1 也比 0 多 k 个,这样把这个位置之前的串剪掉,就剩下符合要求的最长串了。对右侧同理。每次枚举位置 x ,更新最大的 l + r 。

O(3*n)46ms

参考:https://blog.csdn.net/C_13579/article/details/81449648

免责声明:文章转载自《51nod——1391 01串(字符串、前缀和)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS安装mysql源码包[02] 抽象类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

二维差分基础

二维差分数组构造: (bleft [ i ight ]left [ j ight ]=aleft [ i ight ]left [ j ight ]-aleft [ i-1 ight ]left [ j ight ]-aleft [ i ight ]left [ j-1 ight ]+aleft [ i-1 ight ]left [ j-1 ight ])...

游戏破解学习1

游戏破解学习1 第一次接触游戏破解,先试一个比较简单的网页上的小游戏都要用到的flash 打开cheat engine,找到flash进程 将十进制的地址转化为十六进制 这个进程就是flash进程 用ce修改阳光的数量 一开始阳光的数量是50,收集一个阳关,阳光数量变成75,再输入75,(这些操作的目的是为了追踪,找到阳关的地址数值来更改)...

一台服务器能支撑多少个TCP连接

1. 困惑很多人的并发问题   在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台服务器最大究竟能支持多少个网络连接?我想我有必要单独发一篇文章来好好说一下这个问题。   很多同学看到这个问题的第一反应是65535。原因是:"听说端口号最多有65535个,那长连接就最多保持65535个了"。是这样的吗?还有的人说:"应该受TCP连...

从BF算法到kmp算法详解

正文索引 一、KMP介绍 二、例子:子串匹配母串 1.BF算法的解决方法 三、kmp算法的实现 (1)为什么已经有BF算法了还要有KMP算法呢? (2)发明的算法基本思想 (3)具体实现 一、KMP介绍 KMP算法是一种改进的字符串匹配算法(有BF算法改进而来,BF算法是暴利搜索匹配的方式,而KMP则是对BF算法的回溯过程进行改进,从而大幅度降低了时间复...

Unity3D性能优化

一、美术资源优化   1.动态物体,角色、怪物、NPC (1)控制面的数量,300-2000个 (2)控制Skinner Mesh Renderer的数量,1个 (3)控制材质数量,1-3个 (4)控制骨骼的数量,小于30个 2.静态物体 (1)控制网格顶点数,少于500个 (2)标记为static,静态批处理 (3)移除不需要的组件 3.自带地形 (1)...

WebView2简单试用(五)—— 自定义用户数据文件夹

默认情况下,WebView2程序的用户数据是按程序独立存储的: 桌面应用位置是当前路径,以 xxx.exe.WebView2命名 UWP程序在ApplicationDataLocalFolder 程序包文件夹中的子文件夹 这么做的好处是程序具有独立的会话信息。但很多时候我们需要自定义用户数据存储的位置,例如: 程序的根目录可能没有写入权限...