当前位置:网站首页>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;
}
边栏推荐
- 反射机制
- NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
- Likou 707 - Design Linked List - Linked List
- 不专业面试官的经验总结
- 2022-8-3 第七组 潘堂智 锁、多线程
- CheckBox列表项选中动画js特效
- 15 years experience in software architect summary: in the field of ML, tread beginners, five hole
- XSS漏洞复现
- Several difficult problems in DDD
- From September 1st, my country has granted zero-tariff treatment to 98% of tax items from 16 countries including Togo
猜你喜欢

2021年数据泄露成本报告解读

StoneDB 开源社区月刊 | 202207期

云图说丨初识华为云微服务引擎CSE

肝完 Alibaba 这份面试通关宝典,我成功拿下今年第 15 个 Offer

Five Steps to Detect and Control Shadow IT

Orcad Capture Cadence 新建原理图多部分smybol和Homogeneous、Heterogeneous类型介绍教程

9月1日起我国给予多哥等16国98%税目产品零关税待遇

【kali-漏洞扫描】(2.1)Nessus下载安装(上)

双线性插值公式推导及Matlab实现

独立站卖家在哪些平台做社交媒体营销效果最好?
随机推荐
火了十几年的零信任,为啥还不能落地
15年软件架构师经验总结:在ML领域,初学者踩过的五个坑
leetcode 268. 丢失的数字(异或!!)
面试官:为什么 0.1 + 0.2 == 0.300000004?
leetcode 231. 2 的幂
2022年1~7月语音合成(TTS)和语音识别(ASR)论文月报
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
leetcode refers to Offer 58 - II. Left Rotate String
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
How can a cloud server safely use local AD/LDAP?
直播平台怎么搭建,针对输入框的各种组件
svg+js订单确认按钮动画js特效
Orcad Capture Cadence 新建原理图多部分smybol和Homogeneous、Heterogeneous类型介绍教程
字节跳动软件测试岗,前两面过了,第三面HR天坑,结局透心凉...
《QDebug 2022年7月》
【使用 Pytorch 实现入门级的人工神经网络】
好朋友离职了,一周面试了20多场,我直呼内行
LeetCode_Digit Statistics_Medium_400. Nth Digit
双线性插值公式推导及Matlab实现
简单又有效的基本折线图制作方法