CF1340F Nastya and CBS 题解
题目大意
给定一个长度为 \(n(n \le 10 ^ 5)\) 的括号序列。要求支持两个操作:
修改某个位置的括号。
询问 \([l, r]\) 区间内的括号序列是否合法。
题目分析
显然,这道题是一道数据结构题。并且这个数据结构只允许至多两个 \(\log\) 或者一个根号。
考虑分块。
我们发现,如果区间内有两个相邻的括号,开口方向相反,而且类型也不同,那么一定不合法。
对于一个合法的括号序列,一定是前面一段右括号括号,后面一段左括号,形如 \(\texttt{))][[(}\) 。
在每个块内,我们可以预处理出每个块是否合法(合法条件见上文),如果合法,还可以处理出两段括号的哈希值。
修改操作暴力重构所在块,查询操作吧 \(\sqrt{n}\) 个块里的哈希暴力入栈即可。
总复杂度 \(O(m \sqrt{n})\) 。
代码
不放了吧,大家应该都会。
CF1340F Nastya and CBS 题解的更多相关文章
- Codeforces 1340F - Nastya and CBS(分块+哈希)
Codeforces 题面传送门 & 洛谷题面传送门 首先看到这样的数据范围我们可以考虑分块,具体来说,对于每一块我们记录其中的括号是否能完全消掉,以及对其进行括号相消之后的括号序列(显然是一 ...
- Codeforces Round #489 (Div. 2) E - Nastya and King-Shamans
E - Nastya and King-Shamans 题目大意:有n个数,每一次操作更改一个数,每次操作之后问你是否有一个数等于其前面所有数的和. 思路:好题,想了很久没想出来,看了题解,主要思想就 ...
- Codeforces Round #546 (Div. 2) 题解
Codeforces Round #546 (Div. 2) 题目链接:https://codeforces.com/contest/1136 A. Nastya Is Reading a Book ...
- Nastya Studies Informatics CodeForces - 992B (大整数)
B. Nastya Studies Informatics time limit per test 1 second memory limit per test 256 megabytes input ...
- CF 1136A 1136B 1136C 1136D 1136E(Round546ABCDE)题解
题目地址:https://codeforces.com/contest/1136 A: Nastya Is Reading a Book 题解:挨个判断即可,水题. 参考代码: #include< ...
- 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 只做出来四道比较水的题目,还需要加强中等题的训练 ...
随机推荐
- npm install xxx 后加上-s、-d、-g之间的区别?
1.npm install xxx -s npm install xxx -s.npm install xxx -S是npm install xxx --save的简写形式 局部安装,记录在packa ...
- 想转行DevOps工程师?快来看看DevOps工程师的学习路径,少走弯路
DevOps方法论 :::tips DevOps方法论的主要来源是Agile, Lean 和TOC, 独创的方法论是持续交付. ::: DevOps 是一种软件开发方法,涉及持续开发,持续测试,持续集 ...
- 其它——ASCII码,Unicode和UTF-8编码
文章目录 一 ASCII码 二 非ASCII编码 三 Unicode 3.1 Unicode存在的问题 3.2 它们造成的结果是 四 UTF-8 4.1 UTF-8 特点 4.2 UTF-8 的编码规 ...
- 什么是 CSS?
1.什么是 CSS? CSS 指的是层叠样式表* (Cascading Style Sheets) CSS 描述了如何在屏幕.纸张或其他媒体上显示 HTML 元素 CSS 节省了大量工作.它可以同时控 ...
- Treap树学习笔记
等我写完. 普通fhq treap: enum { Maxn = 1000005 }; struct FHQTreap { int lson[Maxn], rson[Maxn], data[Maxn] ...
- [ABC208E] Digit Products 题解
Digit Products 题目大意 求有多少个不大于 \(n\) 的正整数,使得该正整数各位乘积不大于 \(k\). 思路分析 观察数据范围,首先考虑数位 DP. 考虑设计记忆化搜索函数 dfs( ...
- MongoDB 中的锁分析
MongoDB 中的锁 前言 MongoDB 中锁的类型 锁的让渡释放 常见操作使用的锁类型 如果定位 MongoDB 中锁操作 1.查询运行超过20S 的请求 2.批量删除请求大于 20s 的请求 ...
- flyod
最开始看错数据了没看到Q = 100 是50%的数据以为跑q遍floyd能过,结果只有30,其他全t 1.要注意题目中的条件,挖掘一些性质 var code = "92ce4972-7e0f ...
- Python JSON 使用指南:解析和转换数据
JSON 是一种用于存储和交换数据的语法.JSON 是文本,使用 JavaScript 对象表示法编写. Python 中的 JSON Python 有一个内置的 json 包,可用于处理 JSON ...
- EFCore 使用FluntApi配置 全局查询筛选器
我们在类中通常会有一个属性为 IsDel来表示软删除或也称逻辑删除,这个属性会导致我们在进行查询操作时,每一次都要 .where(s=>s.IsDel==false) 非常的麻烦.在使用efCo ...