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(\ ...
随机推荐
- 《浅谈亚 log 数据结构在 OI 中的应用》阅读随笔
这篇又长长长了! \(8435\to 8375\to 9729\) 早就馋这篇了!终于学了( 压位 Trie 确实很好写啊 但是总感觉使用范围不是很广的样子 似乎是见的题少 原文里都在用 \(\log ...
- 【大数据课程】高途课程实践-Day03:Scala实现商品实时销售统计
〇.概述 1.实现内容 使用Scala编写代码,通过Flink的Source.Sink以及时间语义实现实时销量展示 2.过程 (1)导包并下载依赖 (2)创建数据源数据表并写⼊数据 (3)在Mysql ...
- elasticsearch global 、 filters 和 cardinality 聚合
目录 1. 背景 2.解释 1.global 2.filters 3.cardinality 3.需求 4.前置条件 4.1 创建mapping 4.2 准备数据 5.实现3的需求 5.1 dsl 5 ...
- [攻防世界][江苏工匠杯]easyphp
打开靶机url,上来就代码审计 <?php highlight_file(__FILE__); $key1 = 0; $key2 = 0; $a = $_GET['a']; $b = $_GET ...
- 高可用系列文章之三 - NGINX 高可用实施方案
前文链接 高可用系列文章之一 - 概述 - 东风微鸣技术博客 (ewhisper.cn) 高可用系列文章之二 - 传统分层架构技术方案 - 东风微鸣技术博客 (ewhisper.cn) 四 NGINX ...
- 连接MySql时提示%d format: a number is required, not str
代码: sql = "select * from appelementinfo" coon = pymysql.connect(user='root', password='', ...
- week_8
Andrew Ng 机器学习笔记 ---By Orangestar Week_7_Unsupervised Learning While supervised learning algorithms ...
- 基于 Traefik 的 ForwardAuth 配置
前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易. Traefik 可以与现有的多种基础设施组件(Docker.Swarm 模式.Kubernetes.Mara ...
- AWVS漏洞扫描器的使用
前言 AWVS是一款强大的web漏洞扫描工具,扫描速度快,可针对特定的漏洞进行扫描测试,用于在按全人员对指定企业进行安全扫描以及测试人员对web应用检测漏洞. AWVS使用以及功能介绍 这里介绍的是使 ...
- day10-功能实现09
家居网购项目实现09 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 21.功能20-修改购物车 21.1需求分析/图解 进入购 ...