Codeforces Round 913 (Div. 3)B(预处理)
1.Codeforces Round 918 (Div. 4)赛后总结(前缀和)(set部分用法)2.(区间覆盖问题)P5019 [NOIP2018 提高组] 铺设道路和Educational Codeforces Round 158 (Rated for Div. 2)3.Codeforces Round 922 (Div. 2)赛后总结4.Codeforces Round 923 (Div. 3)赛后总结
5.Codeforces Round 913 (Div. 3)B(预处理)
6.Codeforces Round 928 (Div. 4)赛后总结7.Codeforces Round 933 (Div. 3)赛后总结8.Div4 VP总结Codeforces Round 913 (Div. 3)B
预处理:
如果说一个数据是静态的,那可用预处理来减少运行时间。
在这里,我们对字符串的大小写字母做一个预处理,提前用数组记录下他们的位置,然后再根据题目要求对对应位置做标记删除就好,这种方法可以将复杂度从o(n^2)降低至o(n);
const:
用const 将一个变量量转化成具体数据,方便修改
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int a[N];
int b[N];
int c[N];
int main() {
int t;
cin >> t;
for (int j = 1; j <= t; j++) {
string n;
cin >> n;
int b1 = 0;
int c1 = 0;
memset(a, 0, sizeof(a));
for (int i = 0; i < n.length(); i++) {
if (n[i] == 'B') {
a[i] = -1;
if (c1 >= 1) {
a[c[c1--]] = -1;
}
} else if (n[i] == 'b') {
a[i] = -1;
if (b1 >= 1) {
a[b[b1--]] = -1;
}
} else if (n[i] >= 'a' && n[i] <= 'z' ) {
b[++b1] = i;
} else {
c[++c1] = i;
}
}
for (int i = 0; i < n.length(); i++) {
if (a[i] != -1) {
cout << n[i];
}
}
cout << endl;
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤