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

AT_zone2021_d 宇宙人からのメッセージ 题解

题目

思路

首先考虑暴力模拟,那么时间复杂度为 o ( n 2 ) o(n^2) o(n2),TLE
那我们需要思考如何快速解决反转的问题。
我们会发现我们并不需要花费一个for循环去真的反转,只需要改变插入字符的前后位置。
例如:abcRcba
abc反转后变成cba,之后拼上cba,变成cbacba,其实我们可以把这个"cba"放到"abc"前面插上。变成了abcabc。最后反过来输出就好了。

那么我们用一个变量记录R的次数,如果次数为偶数那么数字就往后面插,奇数往前面插。
最后倒过来输出就是答案。

实现方法

STL大法。
使用双端队列deque,双端队列。

注意不要访问访问空的队列,会RE

代码

#include<bits/stdc++.h>
#include<cstring>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include<map>
#define ll long long
#define lhs printf("\n");
using namespace std;
const int N=1e5+10;
const int M=2024;
const int inf=0x3f3f3f3f;
string s;
deque<char> t; 
int flag;
int main()
{cin>>s; for(int i=0;i<s.size();i++){if(s[i]!='R'){if(!flag){if(!t.empty() and t.front()!=s[i]){t.push_front(s[i]);}else if(t.empty()){t.push_front(s[i]);}else{if(!t.empty())t.pop_front();}}else{if(!t.empty() and t.back()!=s[i]){t.push_back(s[i]);}else if(t.empty()){t.push_back(s[i]);}else{if(!t.empty())t.pop_back();}}}else{flag^=1;}}if(flag){	while(!t.empty()){cout<<t.front();t.pop_front();}}else{while(!t.empty()){cout<<t.back();t.pop_back();}}return 0;
}
//abcRRRRabcRabcabc

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言——构造(结构体)
  • JavaScript 基础(四)
  • CentOS 7 上配置 NFS
  • 安卓应用开发学习:手机摇一摇功能应用尝试--摇骰子和摇红包
  • Qt解析XML
  • 力扣面试经典算法150题:删除有序数组中的重复项 II
  • Java - IDEA开发
  • MySQL中处理JSON数据:大数据分析的新方向,详解与示例
  • 17. 合并两个dataframe
  • 微电网控制器是什么?微电网中央控制器|微电网协调控制器|微电网控制系统图|Micon2505微网中央控制器方案介绍
  • 汽车免拆诊断案例 | 2013款北京现代悦动车发动机偶尔无法起动
  • adb查看当前运行的应用的包名和Activity(模拟器也可以)
  • C++适配windows和linux下网络编程TCP简单案例
  • 通过共享目录上传后门
  • 学习Flutter时需要了解的背景知识
  • avalon2.2的VM生成过程
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • js操作时间(持续更新)
  • Lucene解析 - 基本概念
  • MySQL QA
  • MySQL的数据类型
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • unity如何实现一个固定宽度的orthagraphic相机
  • 半理解系列--Promise的进化史
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 详解NodeJs流之一
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 新手搭建网站的主要流程
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​字​节​一​面​
  • # 数据结构
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (Java)【深基9.例1】选举学生会
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (第30天)二叉树阶段总结
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (转)为C# Windows服务添加安装程序
  • *p++,*(p++),*++p,(*p)++区别?
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET C# 操作Neo4j图数据库
  • .net访问oracle数据库性能问题
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • :not(:first-child)和:not(:last-child)的用法
  • @AliasFor 使用
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • @Transaction注解失效的几种场景(附有示例代码)
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件