不能算解析的解析

很神仙的题

知道做法后很容易实现

这里不写题解

推荐一个: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】神奇的字符串的更多相关文章

  1. JZOJ【NOIP2013模拟联考14】隐藏指令

    JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...

  2. ZUFE2481 神奇的字符串 2017-05-12 16:41 39人阅读 评论(0) 收藏

    2481: 神奇的字符串 时间限制: 3 Sec  内存限制: 256 MB 提交: 8  解决: 3 [提交][状态][讨论版] 题目描述 输入 输出 样例输入 abcb 1000 1100 350 ...

  3. [jzoj 5664] [GDOI2018Day1模拟4.6] 凫趋雀跃 解题报告(容斥原理)

    interlinkage: https://jzoj.net/senior/#contest/show/2703/3 description: solution: 考虑容斥原理,枚举不合法的走的步数 ...

  4. [jzoj 6101] [GDOI2019模拟2019.4.2] Path 解题报告 (期望)

    题目链接: https://jzoj.net/senior/#main/show/6101 题目: 题解: 设$f_i$表示从节点$i$到节点$n$的期望时间,$f_n=0$ 最优策略就是如果从$i, ...

  5. [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)

    题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...

  6. [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_ ...

  7. [jzoj 6092] [GDOI2019模拟2019.3.30] 附耳而至 解题报告 (平面图转对偶图+最小割)

    题目链接: https://jzoj.net/senior/#main/show/6092 题目: 知识点--平面图转对偶图 在求最小割的时候,我们可以把平面图转为对偶图,用最短路来求最小割,这样会比 ...

  8. [jzoj 6086] [GDOI2019模拟2019.3.26] 动态半平面交 解题报告 (set+线段树)

    题目链接: https://jzoj.net/senior/#main/show/6086 题目: 题解: 一群数字的最小公倍数就是对它们质因数集合中的每个质因数的指数取$max$然后相乘 这样的子树 ...

  9. [jzoj 4528] [GDOI2019模拟2019.3.26] 要换换名字 (最大权闭合子图)

    题目链接: https://jzoj.net/senior/#contest/show/2683/0 题目: 题解: 不妨枚举一个点,让两颗树都以这个点为根,求联通块要么点数为$0$,要么包括根(即联 ...

  10. [jzoj 6087] [GDOI2019模拟2019.3.26] 获取名额 解题报告 (泰勒展开+RMQ+精度)

    题目链接: https://jzoj.net/senior/#main/show/6087 题目: 题解: 只需要统计$\prod_{i=l}^r (1-\frac{a_i}{x})$ =$exp(\ ...

随机推荐

  1. (Java)设计模式:行为型

    前言 此篇博文内容续接的是 UML建模语言.设计原则.创建型设计模式 的内容,有兴趣的可以点前面的链接去看一下 3.2.行为型 这类设计模式是专门用于:对象间的高效沟通和职责委派 * 3.2.1.责任 ...

  2. 【大数据面试】【框架】Linux命令、Shell工具、常见Shell脚本(群起脚本、数仓导入)

    一.Linux 1.常用高级命令 ps -ef:查看进程详情,ps -ef|grep dae可以搜索指定进程,-e表示环境变量 ps -au:以用户为主的详细格式,显示进程平均占用资源,不包括cmd列 ...

  3. Vue快速上门(2)-模板语法

    VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.模板语法 1.1.template模板 <template>是H5 ...

  4. Jmeter之非GUI下执行脚本

    1.进入jmeter 应用所在路径 eg: cd D:\Program Files\apache-jmeter-5.2\bin 2.输入运行命令:jmeter -n -t [jmx脚本路径] -l [ ...

  5. cs231n__4.2 神经网络 Neural networks

    CS231n 学习笔记 4.2 神经网络 Neural networks 之前我们已经使用了 很多线性分类函数 现在我们不用单变换的: 我们首先有线性层,然后有这个非线性计算,继而在顶层再加入另一个线 ...

  6. JavaScript:this指针

    this指针,存储的是一个内存地址,如同变量一样,指向一块内存区域: 而这个内存区域,保存的就是一个对象的数据,那么这个对象是什么呢? 通常来说,this指针,主要是用在方法(函数)中,用来指向调用方 ...

  7. JDBC的一些基础认识,写的不是特别完善,希望大家看的时候别太介意嘿嘿嘿

    JDBC 1,概念和本质 Java DataBase Connectivity Java 数据库链接, Java语言操作数据库 JDBC的本质:是一套操作所有关系型数据库的规则(接口)而JDBC所有的 ...

  8. JavaScript 中如何拦截全局 Fetch API 的请求和响应?

    本文翻译自 Intercepting JavaScript Fetch API requests and responses 拦截器是可用于预处理或后处理 HTTP 请求的代码块,有助于全局错误处理. ...

  9. Java内存区域有哪些构成?

    目录 前言 Java 内存区域 程序计数器 虚拟机栈 本地方法栈 堆 方法区 字符串常量池 运行时常量池 直接内存 小结 作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算 ...

  10. 孤独的照片【USACO 2021 December Contest Bronze】

    孤独的照片 Farmer John 最近购入了 \(N\) 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一. 奶牛目前排成一排,Farmer John 想要为 ...