[题解]luogu_AT1224_JOIOJI
https://www.cnblogs.com/fengzhiyuan/p/7588443.html
不会map,有点菜
1.要想知道三个字母出现次数相等, 为J [ i ]-J [ j ]== O[ i ]-O[ j ] == I [ i ]- I [ j ],移项得 J[ i ]-O[ i ]=J[ j ]-O[ j ] 其他同理
2.于是我们可以把每个 J[ i ]-O[ i ],O[ i ]-I[ i ]的二元组映射成出现这个组的位置,长度即为i-出现位置
至于为什么会想到哈希/map,还要问问dalao们才行
#include<iostream>
#include<cstdio>
#include<map>
#define mp make_pair
using namespace std;
int n,ans;
char s[];
int sum[][];//出現次數和
map<pair<int,int>,int>m;//把出現次數差的二元組映射為出現位置處
int main()
{
scanf("%d",&n);
scanf("%s",s+);
m[mp(,)]=;
for(int i=;i<=n;i++){
sum[][i]=sum[][i-]+(s[i]=='J');
sum[][i]=sum[][i-]+(s[i]=='O');
sum[][i]=sum[][i-]+(s[i]=='I');
if(m.find( mp(sum[][i]-sum[][i],sum[][i]-sum[][i]) ) == m.end())//如果map里沒有這個二元組
m[mp(sum[][i]-sum[][i],sum[][i]-sum[][i])]=i;//插入
else ans=max(ans,i-m[mp(sum[][i]-sum[][i],sum[][i]-sum[][i])]);//找到了更新ans,即為i-那次出現位置,也就是長度
}
printf("%d\n",ans);
}
[题解]luogu_AT1224_JOIOJI的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 剑指Offer:树的子结构【26】
剑指Offer:树的子结构[26] 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 分为两步: 第一步:在树A中找到和树B的根节点的值一 ...
- const位置上的不同代表哪些不同的意义
const位置上的不同代表哪些不同的意义 exern的用法 这个可以引用在程序编译过程中编译进去的常量数据.换句话说正能在.h文件的声明赋值的常量才可以.并且常量的名字不能相同,如果相同会报错. 全局 ...
- LightOJ1197 Help Hanzo —— 大区间素数筛选
题目链接:https://vjudge.net/problem/LightOJ-1197 1197 - Help Hanzo PDF (English) Statistics Forum Tim ...
- BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1619 题意: 给你一个n*m的地形图,位置(x,y)的海拔为h[x][y]. 一个山顶的定 ...
- [原创]java操作word(一)
一. 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印.此需求可以通过用程序填充数据到word模板中来实现.所谓模 ...
- Linux 命令行 Tricks
区分文件和目录: ls -F ls -F -R:递归显示目录 仅改变文件的修改时间,而不修改文件的内容: touch filename: 使用 file 命令查看文件类型: ASCII text di ...
- Opencv— — Color Gradient
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- C语言之数组与指针的易混淆知识点
一.指针与数组 指针:指针本身也是一个变量,它的内容是指向的内容的地址.指针同样有类型的区分,char 的指针只能指向char型数据,int 指针指向int型数据.但是指针所占内存单元的大小(即其内容 ...
- 在项目中添加全局的 pch 文件
说明,本片博文仅仅是方便自己以后在添加 pch 文件的配置时候参照使用,担心一些配置的路径由于时间而遗忘. (1)建一个 pch 文件 注意下面要 在 Targets 后打上 对号 (2)对该文件进行 ...
- Codeforces Round #408( Div2)
Bank Hacking 阅读题,读完之后手算一下可以发现每一个bank被hack所需要的strength无非分为三种情况. 1. $a_i$,当且仅当i为第一个选择的点. 2. $a_i+1$,当且 ...