[atcoder abc 372 c] Count ABC Again

ops/2024/10/19 4:11:20/

建议在洛谷查看。

当修改了第 i i i 个字符,只对第 i − 2 i - 2 i2 i + 2 i + 2 i+2 有影响。

因此先统计出开始时的 abc 个数,改变第 i i i 个位置后,对上面的区间进行修改即可。


#include<bits/stdc++.h>
using namespace std;
int n, q;
string s;
int sum = 0;
int main(){scanf("%d %d", &n, &q);cin >> s;//初始统计for(int i = 2; i < n; ++ i){if(s[i - 2] == 'A' && s[i - 1] == 'B' && s[i] == 'C'){++ sum;}}while(q --){int x;char y;cin >> x >> y;-- x;if(s[x] == y){printf("%d\n", sum);continue;}//x - 2 到 xif(x >= 2 && s[x - 2] == 'A' && s[x - 1] == 'B' && s[x] == 'C'){-- sum;}//x - 1 到 x + 1else if(x >= 1 && x < n && s[x - 1] == 'A' && s[x] == 'B' && s[x + 1] == 'C'){-- sum;}//x 到 x + 2else if(x < n - 1 && s[x] == 'A' && s[x + 1] == 'B' && s[x + 2] == 'C'){-- sum;}s[x] = y;//修改后同理if(x >= 2 && s[x - 2] == 'A' && s[x - 1] == 'B' && s[x] == 'C'){++ sum;}else if(x >= 1 && x < n && s[x - 1] == 'A' && s[x] == 'B' && s[x + 1] == 'C'){++ sum;}else if(x < n - 1 && s[x] == 'A' && s[x + 1] == 'B' && s[x + 2] == 'C'){++ sum;}printf("%d\n", sum);}return 0;
}

http://www.ppmy.cn/ops/118092.html

相关文章

【CSS】盒子模型

width 宽度 、height 高度 、padding 内边距 、margin 外边距 ( 外边距合并、子元素外边距塌陷问题 )border 边框border-radius 圆角box-shadow 阴影overflow 溢出float 浮动 ( 父元素塌陷问题 ) 盒子模型&#xff08;Box Model &#xff09;是指在网页设计中&#xff0c;用于描…

如何配置路由器支持UDP

一、UDP协议简介 UDP是一种传输层协议&#xff0c;与TCP&#xff08;传输控制协议&#xff09;不同&#xff0c;它不需要建立连接&#xff0c;因此传输速度较快。由于UDP不需要确认数据包的接收状态&#xff0c;它适用于不需要严格数据完整性但需要低延迟的场景。 常见的UDP应…

RuoYi若依框架学习:多环境配置

在开发过程中&#xff0c;项目往往需要在不同的环境&#xff08;如开发、测试和生产&#xff09;中运行。RuoYi框架支持通过配置文件轻松实现多环境管理。以下是如何配置和使用多环境的技术分析。 1. 环境配置文件 RuoYi框架使用application-{profile}.yml文件来管理不同环境…

Linux用户管理

用户管理 在 Linux 系统中各种会存在着多个用户。我们的使用者靠用户名来区分各自登陆的账 号。如果我们的用户想要使用系统资源&#xff0c;就必须在系统中拥有合法的账号。在系统多个文 件中都保存了用户身份相关信息。 系统靠ID号区分用户&#xff08;ls -n&#xff09; …

网络安全等级保护 | 规范企业网络系统安全使用 | 天锐股份助力等保制度落地

在当今数字化高速发展的时代&#xff0c;网络安全对于企业的重要性日益凸显。而近年来&#xff0c;数据泄露、网络攻击等安全事件频发&#xff0c;给企业和个人带来了前所未有的挑战。在这一背景下&#xff0c;网络安全等级保护制度&#xff08;简称“等保”&#xff09;作为国…

web功能测试总结(自用分享)

一、web页面展示 1、页面清单是否完整&#xff1a;如按钮、单选框、复选框、列表框、超连接、输入框等 2、页面在不同的分辨率和不同的浏览器版本是否显示 3、页面在不同大小的窗口中的显示是否正确、美观&#xff0c;系统字体&#xff0c;颜色&#xff0c;风格是否统一 4、页面…

在vue2项目中使用dart-sass

问题描述 在vue2项目中使用dart-sass。或者将node-sass换成dart-sass&#xff0c;原因是node-sass安装比较困难&#xff0c;很多时候sass-loader无法安装成功。另外在win和Linux环境下运行行项目需要针对Linux搞一个node-sass的Linux版本。 问题分析 在 Vue 2 项目中使用 da…

ASP.NET Zero是什么?适合哪些业务场景?

一、ASP.NET Zero是什么&#xff1f; ASP.NET Zero 是一个基于 ASP.NET Boilerplate (ABP) 框架的模板项目&#xff0c;它提供了预建的页面和强大的基础设施架构&#xff0c;以便开发者能够快速开发应用层。它的特点包括但不限于&#xff1a; 多合一解决方案&#xff1a;提供多…