Atcoder:TrBBnsformBBtion(思维 & 字符串)
来源:互联网 发布:外国交友软件 编辑:程序博客网 时间:2024/05/22 12:19
E - TrBBnsformBBtion
Time limit : 2sec / Memory limit : 256MB
Score : 600 points
Problem Statement
Let us consider the following operations on a string consisting of A
and B
:
- Select a character in a string. If it is
A
, replace it withBB
. If it isB
, replace withAA
. - Select a substring that is equal to either
AAA
orBBB
, and delete it from the string.
For example, if the first operation is performed on ABA
and the first character is selected, the string becomes BBBA
. If the second operation is performed on BBBAAAA
and the fourth through sixth characters are selected, the string becomes BBBA
.
These operations can be performed any number of times, in any order.
You are given two string S and T, and q queries ai,bi,ci,di. For each query, determine whether SaiSai+1…Sbi, a substring of S, can be made into TciTci+1…Tdi, a substring of T.
Constraints
- 1≤|S|,|T|≤105
- S and T consist of letters
A
andB
. - 1≤q≤105
- 1≤ai≤bi≤|S|
- 1≤ci≤di≤|T|
Input
Input is given from Standard Input in the following format:
STqa1 b1 c1 d1…aq bq cq dq
Output
Print q lines. The i-th line should contain the response to the i-th query. If SaiSai+1…Sbi can be made into TciTci+1…Tdi, print YES
. Otherwise, print NO
.
Sample Input 1
BBBAAAABABBBBA47 9 2 57 9 1 41 7 2 51 7 2 4
Sample Output 1
YESNOYESNO
The first query asks whether the string ABA
can be made into BBBA
. As explained in the problem statement, it can be done by the first operation.
The second query asks whether ABA
can be made into BBBB
, and the fourth query asks whether BBBAAAA
can be made into BBB
. Neither is possible.
The third query asks whether the string BBBAAAA
can be made into BBBA
. As explained in the problem statement, it can be done by the second operation.
Sample Input 2
AAAAABBBBAAABBBBAAAABBBBAAABBBBBBAAAAABB102 15 2 132 13 6 161 13 2 204 20 3 201 18 9 192 14 1 113 20 3 156 16 1 174 18 8 207 20 3 14
Sample Output 2
YESYESYESYESYESYESNONONONO
思路:通过写写画画发现A可以变成AAAA,但A,AA,AAA却不能互变,于是将字符串变成全A串,模3看看是否一样就行了。
# include <bits/stdc++.h>using namespace std;const int N = 1e5+3;char s[N], t[N];int sp[N], tp[N];int main(){ int q, a, b, c,d; scanf("%s%s%d",s+1,t+1,&q); for(int i=1; s[i]; ++i) sp[i] = sp[i-1]+s[i]-'A'+1; for(int i=1; t[i]; ++i) tp[i] = tp[i-1]+t[i]-'A'+1; while(q--) { scanf("%d%d%d%d",&a,&b,&c,&d); if((sp[b]-sp[a-1])%3 == (tp[d]-tp[c-1])%3) puts("YES"); else puts("NO"); } return 0;}
- Atcoder:TrBBnsformBBtion(思维 & 字符串)
- AtCoder:Chef Hates Palindromes(思维 & 字符串)
- AtCoder:Connected?(思维)
- AtCoder:AtCoder Group Contest(思维)
- AtCoder:Big Array(思维)
- AtCoder:pushpush(STL & 思维)
- AtCoder:11(数论 & 思维)
- AtCoder:Median Pyramid Hard(思维)
- AtCoder:Median Pyramid Easy(思维)
- AtCoder:Tautonym Puzzle(思维 & 构造)
- AtCoder:Hamiltonish Path(思维 & dfs)
- AtCoder:Colorful Balls(思维 & 数论)
- AtCoder:guruguru(思维 & 差分)
- AtCoder:Fennec VS. Snuke(dfs & 思维)
- 简单思维 AtCoder
- AtCoder:Nuske vs Phantom Thnook(思维 & 树)
- AtCoder:A or...or B Problem(思维)
- Atcoder 500 Wide Flip 思维
- Ajax与Comet-JavaScript高级程序设计第21章读书笔记(2)
- hdu 3944 数学组合+帕斯卡定理
- Solr6 源码结构分析
- 使用Digital Ocean搭建Shadowsocks代理服务器
- web前端和web后端有什么区别
- Atcoder:TrBBnsformBBtion(思维 & 字符串)
- 【cogs2230】采药(加强版)
- 基于bootstrap的仿站练习01
- 《Java编程思想(第4版)》pdf
- eclipse neon3 安装 gradle插件
- 设置 PhantomJs 的 User-Agent 的方法
- Android中用到的设计模式
- 程序员总结:帮助你早些明白一些道理
- EOJ