1170: 非常男女

时间限制: 1 Sec  内存限制: 128 MB
提交: 22  解决: 9

题目描述

Matrix67已经当过多次“媒人”了。他因此获得了许多经验。例如,距Matrix67观察,身高相近的人似乎比较合得来。
    Matrix67在学校策划了一次大型的“非常男女”配对活动。对于这次活动的参与者,Matrix67有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。Matrix67当然希望他能选出的人越多越好。请编写程序告诉他,他最多可以选出多少人来。

输入

第一行有一个正整数n,代表学校的人数。
    第二行有n个用空格隔开的数,这些数只能是0或1,其中,0代表一个女生,1代表一个男生。

对于30%的数据,n<=100;
    对于50%的数据,n<=1 000;
    对于100%的数据,n<=100 000。

输出

输出一个非负整数。这个数表示在输入数据中最长的一段男女人数相等的子序列长度。
    如果不存在男女人数相等的子序列,请输出0。

样例输入

9
0 1 0 0 0 1 1 0 0

样例输出

6
利用前缀和计算,当满足(ans[j]-ans[i-1])*2==(j-i+1)此序列就满足要求。此时注意的是内层遍历j=i+sum+1,而不应该是j=i+1,去除不需要讨论的范围,不然会超时
 #include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
bool a[];
int ans[];
int main()
{
int i,j;
int n;
freopen("in.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
int sum=;
ans[]=;
for(i=;i<=n;i++)
{
scanf("%d",&a[i]);
ans[i]=ans[i-]+a[i];
}
for(i=;i<=n;i++)
{
for(j=i+sum+;j<=n;j+=)
{
if((ans[j]-ans[i-])*==(j-i+))
sum=max(j-i+,sum);
}
}
printf("%d\n",sum);
}
return ;
}

1170: 非常男女(XCOJ 前缀和)的更多相关文章

  1. MySQL的前缀索引及Oracle的类似实现

    MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分单独做索引,从而降低索引的大小. 其实,Oracle也有类似的实现,对于文本,它可以通过substr的函数索引,实现同样 ...

  2. Basic Thought / Data Structure: 前缀和 Prefix Sum

    Intro: 在OI中,前缀和是一种泛用性很高的数据结构,也是非常重要的优化思想 Function: 求静态区间和 模板题:输入序列\(a_{1..n}\),对于每一个输入的二元组\((l,r)\), ...

  3. HDU1671——前缀树的一点感触

    题目http://acm.hdu.edu.cn/showproblem.php?pid=1671 题目本身不难,一棵前缀树OK,但是前两次提交都没有成功. 第一次Memory Limit Exceed ...

  4. 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...

  5. ASP.NET Core MVC 配置全局路由前缀

    前言 大家好,今天给大家介绍一个 ASP.NET Core MVC 的一个新特性,给全局路由添加统一前缀.严格说其实不算是新特性,不过是Core MVC特有的. 应用背景 不知道大家在做 Web Ap ...

  6. 如何处理CSS3属性前缀

    今天闲来无聊,重新来说说CSS3前缀的问题.在春节前和@一丝姐姐说起Sass中有关于gradient的mixins.姐姐说: 为什么还要用mixin呢?为什么不使用Autoprefixer?使用Aut ...

  7. context:component-scan" 的前缀 "context" 未绑定。

    SpElUtilTest.testSpELLiteralExpressiontestSpELLiteralExpression(cn.zr.spring.spel.SpElUtilTest)org.s ...

  8. 解决adobe air sdk打包 apk后自动在包名前面加上air. (有个点)前缀的问题

    早就找到了这个方法,但是一直忙没心思写博客. 默认情况下,所有 AIR Android 应用程序的包名称都带 air 前缀.若不想使用此默认行为,可将计算机环境变量 AIR_NOANDROIDFLAI ...

  9. adobe air类app 接入腾讯开放平台移动游戏使用带tencent包名前缀的问题

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4209159.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 ------ ...

随机推荐

  1. ESM CORR

    http://infosecnirvana.com/arcsight-corr-install/ http://www.softpanorama.org/Admin/Event_correlation ...

  2. LeetCode_Text Justification

    Given an array of words and a length L, format the text such that each line has exactly L characters ...

  3. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证

    原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证 chsakell分享了前端使用AngularJS,后端使用ASP. ...

  4. 关于bat文件语法

    @echo offecho 当前盘符:%~d0echo 当前盘符和路径:%~dp0echo 当前批处理全路径:%~f0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前CMD默认目录: ...

  5. to_char函数引发的不走索引

    SQL> conn cowork_czsh/cowork_czsh Connected. SQL> set linesize 200 SQL> set pagesize 200 SQ ...

  6. java开发经验分享(二)

    二. 数据库 1. SQL语句中保留字.函数名要大写,表明.字段名全部小写 如:SELECT vc_name,vc_sex,i_age FROM user WHERE i_id = 100 AND i ...

  7. poj2723-Get Luffy Out

    一道2-SAT问题,每对钥匙需要加一条边,每扇门上的对应的要用的钥匙加一条边. 其实求解2-SAT问题,关键在于找到不能同时成立的条件,例如在本题中,每对钥匙不能同时使用,每扇门上的钥匙不能同时不使用 ...

  8. Java 四大域对象总结

    一.ServletContext 1.生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟 ...

  9. java算法之身份证号码验证

    调用时直接 new IDCard().verify(身份证id);就可以了 实现代码如下: public class IDCard { private String _codeError; //wi ...

  10. A5营销访谈:卢松松和你聊新媒体运营那些事

    A5芳芳:大家好,这里是A5营销(http://www.admin5.cn)专家访谈,今天请到的嘉宾—卢松松.首先感谢卢松松的参与,先做个简单的自我介绍吧,让大家先熟悉下您近来的发展方向. 卢松松:大 ...