当前位置: 首页 > news >正文

Educational Codeforces Round 179 (Rated for Div. 2)

ABCD 略

E

以字符串的每个位置为对象来看。处理肯定是从低位到高位,我们从低位开始遍历,遇到a不用管,b我们看能不能到a,如果不能看能不能先到c再到a,c看能不能到a,如果不能看能不能到b,如果可以看还能不能到a。当执行两个操作时,要保证后一个操作存在一个位置再第一个操作之后,位置用set存。

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
int T,n,q;
string s;
char x,y;
void init()
{
}
void solve()
{set<int> ba,ca,bc,cb;cin>>n>>q;init();cin>>s;s=" "+s;for(int i=1;i<=q;i++){cin>>x>>y;if(x=='a') continue;if(x=='b'&&y=='a') ba.insert(i);if(x=='c'&&y=='a') ca.insert(i);if(x=='b'&&y=='c') bc.insert(i);if(x=='c'&&y=='b') cb.insert(i);}for(int i=1;i<=n;i++){if(s[i]=='a') continue;if(s[i]=='b'){if(ba.size()){s[i]='a';ba.erase(ba.begin());continue;}if(bc.size()&&ca.size()){set<int>::iterator it=ca.lower_bound(*bc.begin());if(it==ca.end()) continue;s[i]='a';bc.erase(bc.begin());ca.erase(it);}}if(s[i]=='c'){if(ca.size()){s[i]='a';ca.erase(ca.begin());continue;}if(cb.size()){if(ba.size()){set<int>::iterator it=ba.lower_bound(*cb.begin());if(it!=ba.end()){s[i]='a';cb.erase(cb.begin());ba.erase(it);continue;}}s[i]='b';cb.erase(cb.begin());}}}for(int i=1;i<s.length();i++)cout<<s[i];cout<<endl;
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>T;while(T--) solve();
}

http://www.lqws.cn/news/154567.html

相关文章:

  • centos查看开启关闭防火墙状态
  • Java高级 | 【实验五】Spring boot+mybatis操作数据库
  • 获取KIMI API以及API key
  • Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)
  • IDM 免费安装使用方法,支持6.42版本,实时更新
  • 查看本机显卡信息
  • 华为云Flexus+DeepSeek征文 | 基于DeepSeek-V3构建企业知识库问答机器人实战
  • 不等式中的放缩法
  • Java中List的forEach用法详解
  • 总结vxe-grid的一些用法
  • Jenkins | Linux环境部署Jenkins与部署java项目
  • vscode 离线安装第三方库跳转库
  • 更新Java的环境变量后VScode/cursor里面还是之前的环境变量
  • Github Copilot新特性:Copilot Spaces-成为某个主题的专家
  • 【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER
  • openvino如何在c++中调用pytorch训练的模型
  • 阿里云ACP云计算备考笔记 (3)——云存储RDS
  • HttpServletRequest常用方法
  • 第六个微信小程序:教师工具集
  • 前端js获取当前经纬度(H5/pc/mac/window都可用)
  • JVM——如何打造一个类加载器?
  • Flask-Babel 使用示例
  • Spring 常用注解的使用
  • 全球IP归属地查询接口如何用C#进行调用?
  • IP证书与 域名证书有什么区别?
  • 如何自定义一个 Spring Boot Starter?
  • 老旧热泵设备智能化改造:Ethernet IP转Modbus的低成本升级路径
  • 打通印染车间“神经末梢”:DeviceNet转Ethernet/IP连接机器人的高效方案
  • 船舶事故海上搜救VR情景演练全场景 “复刻”,沉浸式救援体验​
  • Python 网络编程 -- WebSocket编程