JZOJ 4417. 【HNOI2016模拟4.1】神奇的字符串

不能算解析的解析
很神仙的题
知道做法后很容易实现
这里不写题解
推荐一个:4417. 【HNOI2016模拟4.1】神奇的字符串
感谢写此博文的神犇!
\(Code\)
#include<cstdio>
using namespace std;
const int N = 1e5 + 5;
int n , m , q , A , B , P , l[N] , r[N] , s[N] , size = 1 , seg[64 * N][3];
char str[N];
int New(int k , int x){if (!seg[k][x]) seg[k][x] = ++size;}
void update(int x , int y , int v , int l , int r , int k)
{
if (x <= l && r <= y)
{
seg[k][2] += v;
return;
}
int mid = (l + r) >> 1;
if (x <= mid) New(k , 0) , update(x , y , v , l , mid , seg[k][0]);
if (y > mid) New(k , 1) , update(x , y , v , mid + 1 , r , seg[k][1]);
}
int query(int x , int l , int r , int k)
{
if (l == r) return seg[k][2];
int mid = (l + r) >> 1;
if (x <= mid) return seg[k][2] + query(x , l , mid , seg[k][0]);
else return seg[k][2] + query(x , mid + 1 , r , seg[k][1]);
}
int main()
{
scanf("%d%d%d%d%d" , &n , &A , &B , &P , &m);
scanf("%s" , str);
for(register int i = 0; i <= m - 1; i++)
{
s[i] = str[i] - '0';
if (s[i] == 0) l[i] = P , r[i] = n - 1;
else l[i] = 0 , r[i] = P - 1;
l[i] = ((l[i] - A * i) % n + n) % n , r[i] = ((r[i] - A * i) % n + n) % n;
if (l[i] <= r[i]) update(l[i] , r[i] , 1 , 0 , n - 1 , 1);
else update(l[i] , n - 1 , 1 , 0 , n - 1 , 1) , update(0 , r[i] , 1 , 0 , n - 1 , 1);
}
scanf("%d" , &q);
char op[10];
int p;
for(; q; q--)
{
scanf("%s%d" , op , &p);
if (op[0] == 'Q') printf("%d\n" , query((A * p + B) % n , 0 , n - 1 , 1));
else{
if (l[p] <= r[p]) update(l[p] , r[p] , -1 , 0 , n - 1 , 1);
else update(l[p] , n - 1 , -1 , 0 , n - 1 , 1) , update(0 , r[p] , -1 , 0 , n - 1 , 1);
if (s[p] == 0) l[p] = 0 , r[p] = P - 1;
else l[p] = P , r[p] = n - 1;
l[p] = ((l[p] - A * p) % n + n) % n , r[p] = ((r[p] - A * p) % n + n) % n;
if (l[p] <= r[p]) update(l[p] , r[p] , 1 , 0 , n - 1 , 1);
else update(l[p] , n - 1 , 1 , 0 , n - 1 , 1) , update(0 , r[p] , 1 , 0 , n - 1 , 1);
s[p] ^= 1;
}
}
}
JZOJ 4417. 【HNOI2016模拟4.1】神奇的字符串的更多相关文章
- JZOJ【NOIP2013模拟联考14】隐藏指令
JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...
- ZUFE2481 神奇的字符串 2017-05-12 16:41 39人阅读 评论(0) 收藏
2481: 神奇的字符串 时间限制: 3 Sec 内存限制: 256 MB 提交: 8 解决: 3 [提交][状态][讨论版] 题目描述 输入 输出 样例输入 abcb 1000 1100 350 ...
- [jzoj 5664] [GDOI2018Day1模拟4.6] 凫趋雀跃 解题报告(容斥原理)
interlinkage: https://jzoj.net/senior/#contest/show/2703/3 description: solution: 考虑容斥原理,枚举不合法的走的步数 ...
- [jzoj 6101] [GDOI2019模拟2019.4.2] Path 解题报告 (期望)
题目链接: https://jzoj.net/senior/#main/show/6101 题目: 题解: 设$f_i$表示从节点$i$到节点$n$的期望时间,$f_n=0$ 最优策略就是如果从$i, ...
- [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)
题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...
- [jzoj 6080] [GDOI2019模拟2019.3.23] IOer 解题报告 (数学构造)
题目链接: https://jzoj.net/senior/#main/show/6080 题目: 题意: 给定$n,m,u,v$ 设$t_i=ui+v$ 求$\sum_{k_1+k_2+...+k_ ...
- [jzoj 6092] [GDOI2019模拟2019.3.30] 附耳而至 解题报告 (平面图转对偶图+最小割)
题目链接: https://jzoj.net/senior/#main/show/6092 题目: 知识点--平面图转对偶图 在求最小割的时候,我们可以把平面图转为对偶图,用最短路来求最小割,这样会比 ...
- [jzoj 6086] [GDOI2019模拟2019.3.26] 动态半平面交 解题报告 (set+线段树)
题目链接: https://jzoj.net/senior/#main/show/6086 题目: 题解: 一群数字的最小公倍数就是对它们质因数集合中的每个质因数的指数取$max$然后相乘 这样的子树 ...
- [jzoj 4528] [GDOI2019模拟2019.3.26] 要换换名字 (最大权闭合子图)
题目链接: https://jzoj.net/senior/#contest/show/2683/0 题目: 题解: 不妨枚举一个点,让两颗树都以这个点为根,求联通块要么点数为$0$,要么包括根(即联 ...
- [jzoj 6087] [GDOI2019模拟2019.3.26] 获取名额 解题报告 (泰勒展开+RMQ+精度)
题目链接: https://jzoj.net/senior/#main/show/6087 题目: 题解: 只需要统计$\prod_{i=l}^r (1-\frac{a_i}{x})$ =$exp(\ ...
随机推荐
- 【每日一题】【直接循环&二分查找】2022年2月10日-NC32 求平方根
描述实现函数 int sqrt(int x).计算并返回 x 的平方根(向下取整) 方法1:直接循环 import java.util.*; public class Solution { /** * ...
- 【每日一题】【第一个出现的值】【二分】2022年1月10日-NC105 二分查找-II
描述请实现有重复数字的升序数组的二分查找给定一个 元素有序的(升序)长度为n的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返 ...
- linux系统部署微服务项目
**:如果使用阿里云linux服务器 1.设置容器镜像服务 在阿里云平台搜索 "容器镜像服务" 选择"CentOS" 安装/升级Docker客户端 配置镜像加速 ...
- STM32外部中断(EXTI)控制LED亮灭的代码
led.c #include "led.h" void LED_Config(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2P ...
- 粘包、struct模块、进程并行与并发
目录 粘包现象 struct模块 粘包代码实战 udp协议(了解) 并发编程理论 多道技术 进程理论 进程并行与并发 进程的三状态 粘包现象 1.服务端连续执行三次recv 2.客户端连续执行三次se ...
- C# Log4net配置文件 总结
前言 因为项目日志太杂乱而且很大,打开一个就卡死了,何况用户电脑也扛不住日志积累,要做一个日志记录器管理日志.但对里面的配置有一些不熟悉(毕竟都是复制粘贴的),所以记录一下各个项的作用.方便后续复习. ...
- texlive2021编译中文
环境 Windows 10 编译 测试latex代码 \documentclass{article} \usepackage[UTF8]{ctex} \begin{document} 中文输入 \en ...
- P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior
1. 论文简介 论文题目:P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior Paper地址:paper Code ...
- GitHub车牌检测识别项目调研
一,EasyOCR 1.1,仓库介绍 1.2,使用记录 二,HyperLPR 2.1,HyperLPR 概述 2.3,使用记录 2.3,使用建议 三,simple-car-plate-recognit ...
- 20 张图带你全面了解 HTTPS 协议,再也不怕面试问到了!
本文详细介绍了 HTTPS 相较于 HTTP 更安全的原因,包括对称加密.非对称加密.完整性摘要.数字证书以及 SSL/TLS 握手等内容,图文并茂.理论与实战结合.建议收藏! 1. 不安全的 HTT ...