当前位置:网站首页>C. awoo‘s Favorite Problem--Educational Codeforces Round 130 (Rated for Div. 2)
C. awoo‘s Favorite Problem--Educational Codeforces Round 130 (Rated for Div. 2)
2022-08-03 21:03:00 【秦小咩】
C. awoo's Favorite Problem
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given two strings ss and tt, both of length nn. Each character in both string is 'a', 'b' or 'c'.
In one move, you can perform one of the following actions:
- choose an occurrence of "ab" in ss and replace it with "ba";
- choose an occurrence of "bc" in ss and replace it with "cb".
You are allowed to perform an arbitrary amount of moves (possibly, zero). Can you change string ss to make it equal to string tt?
Input
The first line contains a single integer qq (1≤q≤1041≤q≤104) — the number of testcases.
The first line of each testcase contains a single integer nn (1≤n≤1051≤n≤105) — the length of strings ss and tt.
The second line contains string ss of length nn. Each character is 'a', 'b' or 'c'.
The third line contains string tt of length nn. Each character is 'a', 'b' or 'c'.
The sum of nn over all testcases doesn't exceed 105105.
Output
For each testcase, print "YES" if you can change string ss to make it equal to string tt by performing an arbitrary amount of moves (possibly, zero). Otherwise, print "NO".
Example
input
Copy
5 3 cab cab 1 a b 6 abbabc bbaacb 10 bcaabababc cbbababaac 2 ba ab
output
Copy
YES NO YES YES NO
=========================================================================
ab ->ba
bc->cb
第一个置换只能有两个作用,那就是aaaab把b放到前面,abbbb把a放在后面
第二个置换同理
很自然的贪心。我们从末尾往前扫描,如果相等那么继续,否则,如果b对a,往前找a, c对b,往前找b,找不到或者不是这种配对,那么就无解。做多了感觉瞬间来。
# include <iostream>
# include<algorithm>
# include<cstring>
# include<vector>
# include<queue>
# define mod 1000000007
using namespace std;
typedef long long int ll;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
string s,t;
cin>>s>>t;
int flag=0;
for(int i=n-1;i>=0;i--)
{
if(s[i]==t[i])
continue;
if(s[i]=='b'&&t[i]=='a')
{
int j;
for( j=i-1;j>=0;j--)
{
if(s[j]=='a'||s[j]=='b')
{
if(s[j]=='a')
{
swap(s[j],s[i]);
break;
}
}
else
{
flag=1;
break;
}
}
if(j==-1)
flag=1;
}
else if(s[i]=='c'&&t[i]=='b')
{
int j;
for( j=i-1;j>=0;j--)
{
if(s[j]=='c'||s[j]=='b')
{
if(s[j]=='b')
{
swap(s[j],s[i]);
break;
}
}
else
{
flag=1;
break;
}
}
if(j==-1)
flag=1;
}
else
{
flag=1;
break;
}
}
if(flag)
{
cout<<"NO"<<endl;
}
else
{
cout<<"YES"<<endl;
}
}
return 0;
}
边栏推荐
猜你喜欢
《QDebug 2022年7月》
2022年强网杯rcefile wp
为什么 BI 软件都搞不定关联分析
idea2021配置svn报错Cannot run program “svn“ (in directory “xxx“):CreateProcess error=2,系统找不到指定的文件
Transformer怎么入门?如何学习Transformer?
15 years experience in software architect summary: in the field of ML, tread beginners, five hole
Markdown语法
ES、Kibana 8.0安装
Orcad Capture Cadence 新建原理图多部分smybol和Homogeneous、Heterogeneous类型介绍教程
检测和控制影子IT的五个步骤
随机推荐
好朋友离职了,一周面试了20多场,我直呼内行
LitJson报错记录
StoneDB 助力 2022 开放原子全球开源峰会
微信小程序 生成跳转体验版url,可直接跳转到体验版小程序(可通过此方法测试模板消息)
leetcode 1837. K 进制表示下的各位数字总和
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
5 款漏洞扫描工具:实用、强力、全面(含开源)
基于data.table的tidyverse?
idea2021配置svn报错Cannot run program “svn“ (in directory “xxx“):CreateProcess error=2,系统找不到指定的文件
华为设备配置VRRP负载分担
leetcode 268. 丢失的数字(异或!!)
2022年强网杯rcefile wp
Linux操作Jmeter(附带:关于连接上redis无法进行写入操作的问题),JMeter配置多用户进行压力测试
云图说丨初识华为云微服务引擎CSE
直播小程序源码,UI自动化中获取登录验证码
leetcode 16.01. 交换数字(不使用临时变量交换2个数的值)
3种圆形按钮悬浮和点击事件
leetcode 326. 3 的幂
李沐动手学深度学习V2-BERT微调和代码实现
肝完 Alibaba 这份面试通关宝典,我成功拿下今年第 15 个 Offer