1 条题解
-
2
分析所有情况即可,注意判断是否越界
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,q;string s;cin>>n>>q>>s; s=" "+s;int ans=0; for(int i=1;i<=n-2;i++) if(s[i]=='A'&&s[i+1]=='B'&&s[i+2]=='C') ans++; while(q--) { int x;char c; cin>>x>>c; if(x<=n-2&&s[x]=='A'&&s[x+1]=='B'&&s[x+2]=='C'&&c!='A')ans--; if(x>1&&s[x]=='B'&&s[x-1]=='A'&&s[x+1]=='C'&&c!='B')ans--; if(x>2&&s[x]=='C'&&s[x-1]=='B'&&s[x-2]=='A'&&c!='C')ans--; if(x<=n-2&&c=='A'&&s[x+1]=='B'&&s[x+2]=='C'&&s[x]!='A')ans++; if(x>1&&c=='B'&&s[x-1]=='A'&&s[x+1]=='C'&&s[x]!='B')ans++; if(x>2&&c=='C'&&s[x-1]=='B'&&s[x-2]=='A'&&s[x]!='C')ans++; s[x]=c;cout<<ans<<'\n'; } return 0; }
- 1
信息
- ID
- 7945
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 6
- 标签
- 递交数
- 22
- 已通过
- 11
- 上传者