ZROI#960

ZROI#960

先说\(\Theta(n^2)\)暴力叭.
显然的想法就是枚举答案中相邻两个\(1\)之间的\(0\)的个数.
然后贪心匹配,注意判断最后一段是否满足限制.

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
#define MEM(x,y) memset ( x , y , sizeof ( x ) )
#define rep(i,a,b) for (int i = (a) ; i <= (b) ; ++ i)
#define per(i,a,b) for (int i = (a) ; i >= (b) ; -- i)
#define pii pair < int , int >
#define one first
#define two second
#define rint read<int>
#define int long long
#define pb push_back

using std::queue ;
using std::set ;
using std::pair ;
using std::max ;
using std::min ;
using std::priority_queue ;
using std::vector ;
using std::swap ;
using std::sort ;
using std::unique ;
using std::greater ;

template < class T >
    inline T read () {
        T x = 0 , f = 1 ; char ch = getchar () ;
        while ( ch < '0' || ch > '9' ) {
            if ( ch == '-' ) f = - 1 ;
            ch = getchar () ;
        }
       while ( ch >= '0' && ch <= '9' ) {
            x = ( x << 3 ) + ( x << 1 ) + ( ch - 48 ) ;
            ch = getchar () ;
       }
   return f * x ;
}

const int N = 1e5 + 100 ;

char s[N] ;
int n , ans , tmp[N] ;
bool v[N] ;

inline bool check () {

    return true ;
}

signed main (int argc , char * argv[]) {
    scanf ("%s" , s + 1 ) ; n = strlen ( s + 1 ) ;
    rep ( i , 1 , n ) v[i] = ( s[i] == '1' ) ;
    rep ( i , 0 , n ) {
        int time = 0 , res = 0 , cur = 0 ;
        bool f = false , d = 0 , able = false ;
        rep ( j , 1 , n ) {
            if ( ! d && ! v[j] ) {
                ++ cur ;
                if ( cur == i ) d = true , ++ time ;
            }
            if ( d && v[j] ) {
                cur = 0 ; d = false ;
                res += ( i + 1 ) ;
                able = true ;
            }
        }
        if ( able ) {
            if ( time < 2 ) continue ;
            if ( d ) { ans = max ( ans , res + i ) ; }
            else ans = max ( ans , res - 1 ) ;
        }
    }
    printf ("%lld\n" , ans ) ;
    return 0 ;
}

然后我们发现这个算法的瓶颈在于去匹配一串\(0\),这里如果你对根号分治熟悉的话就可能会自然地想根号分治,这是完全可行的.
但我们要说的不是这种做法,我们考虑,虽然原序列中\(0\)的个数不存在单调性,但是前缀\(0\)的个数确实具有单调性的.
而且只需要关注以\(1\)为界的划分即可.于是我们就可以去二分/倍增地找一段\(0\).
代码没写.

原文地址:https://www.cnblogs.com/Equinox-Flower/p/11536061.html

时间: 2024-08-30 17:52:50

ZROI#960的相关文章

960框架

首先当然要去官网下载相关文件(1)在html文件中引入相关的外部CSS文件: <link rel="stylesheet" href="css/reset.css" /><link rel="stylesheet" href="css/text.css" /><link rel="stylesheet" href="css/960.css" /> 在这

960布局

之前学习了960布局 这个框架上手也蛮快的 在实际操作当中也很实用 在今天的网页制作当中就用了这个框架 横着 竖着 都可以用  960的grid 可以分为 12栏 16栏的 用.container_12 和 .container_16来区分 就是将960分成12块或者16块  不过16栏的不常用 会麻烦一些 所以老师建议 用好12栏的就可以了  充分最大化内容的显示区   用container_12 3 6 3 将网页平均分开的时候 两个图像之间会有一个空缺  这个空缺就是margin 在默认的

关于960框架小谈

CSS框架是一种你能够使用在你的web项目中概念上的结构,是别人已经写完的,而且很完善的CSS定义集合.CSS框架一般是CSS文件的集合,包括基本风格的字体排版,表单样式,表格布局等等 ————简单的来说就是站在巨人的肩膀上面,利用别人写好的东西,不用自己在麻烦一次 浏览器不兼容的问题-----这一直是一个心痛的问题 因为在不同的浏览器中所得到的网页显示效果是不同的,这就给网页设计限制了很大的发展空间,虽然有很笨拙的方法去避免这种无法兼容的尴尬 男一号——960grid 聪明的网页设计者发现,其

标定Kinect v2彩色摄像头:使用iai_kinect2,采用qhd(960*540)大小的彩色图像

开篇一作,这篇博文是纯应用的,没有任何理论说明,就当是一个实践提醒啦. 安装kinect v2相机驱动和标定程序得益于下面二位前辈的引荐工作: http://www.cnblogs.com/gaoxiang12/p/5161223.html http://www.cnblogs.com/hitcm/p/5118196.html 十分感谢! 请读者先按照上面前辈的博文安装好libfreenect2和iai_kinect2. 在iai_kinect2标定步骤中(https://github.com/

960网格布局框架(前端css框架)的使用方法

960框架总宽960px CSS框架已经出现很长时间了,关于这些框架的用处也被我们讨论了很多遍了.有人说,CSS框架不够先进,还有人说这些框架大大的节省了他们的开发时间.在此,我们将不再讨论这个问题. 前段时间,我了解到了CSS框架.经过对Malo.BluePrint和960做了实验对比后,我得出一个结论:我最喜欢960CSS框架. 本教程将解释这个框架的基本原理,这样你就可以用960来快速进入开发. 基本原理 你必须知道一些基本原理来“学习这个框架是如何工作的”.你可以通过实验(或者是用fir

960栅格式布局法

960栅格式布局法     间距20px 3 6 3版最常用     容器:container_12,表示将页面12等分     bootstrap框架     基于JQuery封装的一种框架,采用三格式布局,自带响应式     简洁.直观.强悍.移动设备优先的前端开发框架,让web开发更     速.简单.     文件引入     <html lang="zh-CN">     <meta http-equiv="X-UACompatible"

960网格,一个web时代的标志。

闲言少叙,废话不说,直入正题: 1.什么是CSS框架? CSS框架是一种你能够使用在你的web项目中概念上的结构,是别人已经写完的,而且很完善的CSS定义集合.CSS框架一般是CSS文件的集合,包括基本风格的字体排版,表单样式,表格布局等等,比如: * grid.css 表格布局 * layout.css 布局 * form.css 表单 * general.css CSS常规设置 2.CSS框架的种类: CSS框架很多,可以说太多了,最近几年像潮水般涌出.只是国内用CSS框架的不多,倒是PHP

ZROI 普及组模拟赛02总结

ZROI 普及组模拟赛02总结 先放[网址][http://zhengruioi.com/contest/96] 可能是有一段时间没有打这种正式的比赛了,今天打的很奇怪... T1 模拟水题 既然是普及组模拟赛T1还是比较良心的 20分钟就过掉了 T2 <论不仔细观察题目导致的惨案> 没有发现莫尔斯电码非常的全 所以应该枚举哪些不行,而不是枚举26个字母 但是根据计算\(2*26*1e6\)也能跑过去啊 不知道为什么就是超时了... 最可笑的是还卡了20min的常数,还自己造了几组1e6的数据

ZROI提高组模拟赛05总结

ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生生把一个弱智题变成了一个不可做题 最后竟然在转化两次后的模型上以为自己做出来了 这个题比别人多花的1h左右的时间,而且只得到了30分,成为了这场比赛失败的关键因素 T2 依旧是一道简单题 有人20min之内就A掉了 感觉放在CF里最多算一道Div2 D,还是简单的那种 可是我又一次想复杂了 大意就是