codeforces C - awoo's Favorite Problem
题目给定了两个变换
手模一下发现变换的实质是:
对于aaaa...aaab,可以通过第一种变换到任何位置
对于bbbb...bbbc,同理
(很多题目,给出某个operation然后什么什么的,一般要去找找这些operation的性质
那么如果我们想把当前字母变成a,显然无解
如果想要的是b,只需要判断前方是否有aaaab即可
同理c,实现看代码~
#include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; string a,b; cin>>a>>b; for(int i=0;i<n;i++) { if(a[i]!=b[i]) { if(b[i]=='a') { cout<<"NO"<<endl;return; } else { if(b[i]=='c')//need c { //bbbbc int k1=i; while(a[k1]=='b') k1++; if(k1==i) {cout<<"NO"<<endl;return;} if(a[k1]!='c'||k1>=n) {cout<<"NO"<<endl;return;} swap(a[i],a[k1]); } else if(b[i]=='b') { int k1=i; while(a[k1]=='a') k1++; if(k1==i) {cout<<"NO"<<endl;return;} if(a[k1]!='b'||k1>=n) {cout<<"NO"<<endl;return;} swap(a[i],a[k1]); } } } } cout<<"YES"<<endl; return; } int main(){ //freopen("lys.in","r",stdin); int t; cin>>t; while(t--){ solve(); } }
分类:
思维题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)