CF1494A ABC String 题解
Content
给定 \(T\) 个仅包含大写字母 A,B,C 的字符串 \(s\)。问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序列能够完全匹配。
数据范围:\(1\leqslant t\leqslant 10^3\),\(2\leqslant |s|\leqslant 50\)。
Solution
不愧是 bruteforces,开头第一题就来暴力。
我的想法是直接枚举每个字母换成左括号还是右括号。排除全是左括号和全是右括号的情况以后,得到的就只有 \(6\) 种情况:
| A | B | C | |
|---|---|---|---|
| 1 | ( | ( | ) |
| 2 | ( | ) | ( |
| 3 | ( | ) | ) |
| 4 | ) | ( | ( |
| 5 | ) | ( | ) |
| 6 | ) | ) | ( |
拿这六种情况一一代入原字符串里面中,只要有一种情况能够将原字符串变换之后的括号序列能够完全匹配就是 YES,如果六种情况全部都不能匹配就是 NO。
感觉没人比我更暴力了(
Code
std :: map<char, int> vis;
inline bool check(std :: string s) {
std :: stack<char> q; int lens = s.size();
F(i, 0, lens - 1) {
if(s[i] == '(') q.push(s[i]);
else {
if(q.empty()) return 0;
q.pop();
if(q.empty() && s[i + 1] == ')') return 0;
}
}
return q.empty();
}
int main() {
//freopen(".in", "r", stdin);
//freopen(".out", "w", stdout);
MT {
vis.clear();
crstr(s, len);
std :: string tmp = s;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'B') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'C') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A') s[i] = ')';
else s[i] = '(';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'C') s[i] = ')';
else s[i] = '(';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'B') s[i] = ')';
else s[i] = '(';
}
if(check(s)) puts("Yes");
else puts("No");
}
return 0;
}
CF1494A ABC String 题解的更多相关文章
- AtCoder ABC 242 题解
AtCoder ABC 242 题解 A T-shirt 排名前 \(A\) 可得 T-shirt 排名 \([A+1,B]\) 中随机选 \(C\) 个得 T-shirt 给出排名 \(X\) ,求 ...
- [LeetCode] Decode String 题解
题目 题目 s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return " ...
- 多校第十场1009 CRB and String题解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5414 题意:给你两个字符串s和t,你能够在字符串s中随意选一个字符c,在该字符c后插入一个字符d(d! ...
- csp-s模拟测试b组加餐antipalindome,randomwalking,string题解
题面:https://www.cnblogs.com/Juve/articles/11599318.html antipalindome: 打表找规律? 对于一个回文串,我们只要保证3位以内不回文即可 ...
- HDU3336 Count the string 题解 KMP算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题目大意:找出字符串s中和s的前缀相同的所有子串的个数. 题目分析:KMP模板题.这道题考虑 n ...
- CF23A You're Given a String... 题解
Content 给定一个长度为 \(n\) 的字符串,求出至少出现两次的最长子串的长度. 数据范围:\(1\leqslant n\leqslant 100\). Solution 我们直接暴力求出每个 ...
- @atcoder - AGC036E@ ABC String
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个仅由 A, B, C 组成的字符串 S. 求 S 的一个 ...
- Codeforces #698 (Div. 2) E. Nezzar and Binary String 题解
中文题意: 给你两个长度为 \(n\) 的01串 \(s,f,\)有 \(q\) 次询问. 每次询问有区间 \([\ l,r\ ]\) ,如果 \([\ l,r\ ]\) 同时包含\(0\)和\(1\ ...
- CF1440A Buy the String 题解
Content 有 \(t\) 组询问,每组询问给出一个长度为 \(n\) 的 \(0/1\) 串,你可以花 \(h\) 的代价把 \(0\) 修改成 \(1\) 或者把 \(1\) 修改成 \(0\ ...
随机推荐
- 关于阿里云图标的使用 iconfont
iconfont 关于阿里云图标库使用的介绍 对于添加到网页中的iconfont可使用以下几种方式: 首先需要进入阿里云图标库官网进行对应的下载iconfont-阿里巴巴矢量图标库 将需要的图标加入到 ...
- 『学了就忘』Linux权限管理 — 54、sudo授权
目录 1.什么是sudo授权 2. sudo授权说明 3.sudo命令的使用 示例1 示例2 示例3 1.什么是sudo授权 在Linux系统中,/sbin/和/usr/sbin/两个目录中的命令只有 ...
- [源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关
[源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关 0x00 摘要 我们已经知道 dist.autograd 如何发送和接受消息,本文再来看看如何其他支撑部分,就是如 ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- Atcoder Grand Contest 001 F - Wide Swap(拓扑排序)
Atcoder 题面传送门 & 洛谷题面传送门 咦?鸽子 tzc 来补题解了?奇迹奇迹( 首先考虑什么样的排列可以得到.我们考虑 \(p\) 的逆排列 \(q\),那么每次操作的过程从逆排列的 ...
- Codeforces 643F - Bears and Juice(思维题)
Codeforces 题目传送门 & 洛谷题目传送门 首先直接暴力枚举显然是不现实的,我们不妨换个角度来处理这个问题,考虑这 \(R_i\) 个瓶子中每一瓶被哪些熊在哪一天喝过. 我们考虑对这 ...
- NOIP2021 游记
不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分不要挂分释迦牟尼脚绽莲花菩提达摩你真伟大天上天下唯我独尊如来佛祖太上老君耶稣耶稣 ...
- DirectX12 3D 游戏开发与实战第七章内容(下)
利用Direct3D绘制几何体(续) 学习目标 学会一种无须每帧都要刷新命令队列的渲染流程,由此来优化程序的性能 了解另外两种跟签名参数类型:根描述符和根常量 探索如何在程序中生成和绘制常见的几何体, ...
- Linux之crond定时任务
1. 使用crontab工具配置的定时任务 2. 配置定时任务建议规范 3. 定时任务配置问题导致系统出现故障实例 1. 使用crontab工具配置的定时任务 名称 crontab - 维护单个用户的 ...
- 使用systemd将iptables规则在docker启动后自动导入
编写systemd文件 $ sudo vi /etc/systemd/system/iptables-import.service # /etc/systemd/system/iptables-imp ...