Luogu P1114 “非常男女”计划/Luogu P2697 宝石串

(感觉我最近很爱做双倍经验的题啊)

使$d$等于第$i$个位置男生数(绿宝石数)减女生数(红宝石数)的差值。

那么差值相等的两个位置之间的人(宝石)是满足相等的。

所以找到在差值相等情况下最左边和最右边的位置。

特别要注意要把$0$的位置作为差值为$0$的起点。

(两道题的读入略微有些不同)

Luogu P1114

#include<bits/stdc++.h>

using namespace std;

int n,sumboy,sumgirl,ans;
int l[200010],r[200010]; int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) {
int x,d;
scanf("%d",&x);
x==1?sumboy++:sumgirl++;
d=sumgirl-sumboy+n;
if(!l[d]&&d!=n) {
l[d]=i;
}
else {
r[d]=i;
}
}
for(int i=0;i<=n*2;i++) {
ans=max(ans,r[i]-l[i]);
}
printf("%d",ans);
return 0;
}

Luogu P2697

#include<bits/stdc++.h>

using namespace std;

int sumg,sumr,ans,len;
int l[1000010],r[1000010];
char c[1000010]; int main()
{
scanf("%s",&c);
len=strlen(c);
for(int i=1;i<=len;i++) {
int x,d;
x=c[i-1];
x=='G'?sumg++:sumr++;
d=sumr-sumg+len;
if(!l[d]&&d!=len) {
l[d]=i;
}
else {
r[d]=i;
}
}
for(int i=0;i<=len*2;i++) {
ans=max(ans,r[i]-l[i]);
}
printf("%d",ans);
return 0;
}

Luogu P1114 “非常男女”计划/Luogu P2697 宝石串的更多相关文章

  1. [洛谷OJ] P1114 “非常男女”计划

    洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ...

  2. 洛谷 P1114 “非常男女”计划

    To 洛谷.1114 “非常男女”计划 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验.例如,据他观察,身高相近的人 ...

  3. [洛谷P1114] “非常男女”计划

    题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验.例如,据他观察,身高相近的人似乎比较合得来. 万圣节来临之际,XXX ...

  4. P1114 “非常男女”计划

    题意:给你一个01串,求满足0和1总数相等的最大字串   $n\ \le\ 10^5$ 1.$O(n^3)$枚举起点终点,统计判断是否成立 2.$O(n^2)$先$O(n)$时间计算01个数的前缀和, ...

  5. 洛谷 P2697 宝石串

    题目传送门 解题思路: 将红色的设置为-1,绿色的为1,统计前缀和sum,如果sum[i] == sum[j],则说明i~j是一个稳定的区间 因为答案要求最大,所以我们要记录每个sum值的最左端点(也 ...

  6. 前缀和(P2697 宝石串)

    前言 每次做出来什么本来做不出的题目,就忍不住记录一下.不过大多时候隔几天来看,就发现,啊,我当时只是做了一道这么弱智的题目呀,哈哈.前缀和确实不算太难.. 传送门 题目大意: 给你一个字符串只含G和 ...

  7. Luogu 2762 太空飞行计划 / Libre 6001 「网络流 24 题」太空飞行计划 (网络流,最大流)

    Luogu 2762 太空飞行计划 / Libre 6001 「网络流 24 题」太空飞行计划 (网络流,最大流) Description W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行 ...

  8. vijosP1195“非常男女”计划

    vijosP1195“非常男女”计划 链接:https://vijos.org/p/1195 [思路] 人数差. 人数差相等的两点之间的区间一定有男女人数相等. 计目前为止到i的1为sum1,0为su ...

  9. Luogu 4294 [WC2008]游览计划 | 斯坦纳树

    题目链接 Luogu 4294 (我做这道题的时候BZOJ全站的SPJ都炸了 提交秒WA 幸好有洛谷) 题解 这道题是[斯坦纳树]的经典例题.斯坦纳树是这样一类问题:带边权无向图上有几个(一般约10个 ...

随机推荐

  1. vue-cli3使用vue-router 使用动态路由,在刷新页面时报错

    刚发现的一个问题,在使用vue-cli3创建项目之后,使用动=动态路由,demo: { path: '/aa/:id', name: 'aa', component: aa }, 编程式路由: thi ...

  2. RobotFramework: 获取当前时间戳

    robot中先导入DateTime库 #获取当前时间:2019-07-31 10:46:29.940 ${time} Get Current Date result_format=timestamp ...

  3. CF1277D Let's Play the Words?

    思路: 字符串其实只有0...0, 0...1, 1...0, 1...1四种. 实现: #include <bits/stdc++.h> using namespace std; ]; ...

  4. C#等比例缩放图片

    等比例缩放图片(C#) private Bitmap ZoomImage(Bitmap bitmap, int destHeight, int destWidth) { try { System.Dr ...

  5. [DFS]排队(间隔排列)-C++

    Description 小Q是班长.在校运动会上,小Q班要进行队列表演.小Q要选出2*N名同学编队,每人都被编上一个号,每一个从1到N的自然数都被某2名同学佩戴,现在要求将他们排成一列,使两个编号为1 ...

  6. circRNA数据库的建立

      circRNA数据库的建立 wget http://circbase.org/download/human_hg19_circRNAs_putative_spliced_sequence.fa.g ...

  7. 字段自动递增的数据库建表的SQL写法

    数据库建表的SQL写法如下: 数据库建表的SQL写法如下: create table dataC(  a int identity(1,2) primary key,  b varchar(20)) ...

  8. PHP正则匹配价格

    /** * 匹配价格 * @param $price * @return bool */ public static function checkPrice($price) { // 不能小于0 if ...

  9. 解决 IE 或者兼容模式不支持 document.getElementsByClassName() 的方法

    网页错误详细信息消息: 对象不支持此属性或方法 document.getElementsByClassName('element_name') 需要自己实现下该方法,因为ie5之前的版本并不支持这个方 ...

  10. javascript常用小案例

    常用javascript小案例 样式调节 //注: 这个可以控制td中的字段成行显示 #modelInfos td,th { white-space: nowrap; } //文本输入框随着内容尺寸往 ...