jzoj3794,P1383-高级打字机【欧拉序,离线O(n)】

正题

题目链接:https://www.luogu.org/problemnew/show/P1383


大意

三个操作

T c:加入一个字符c
U x:撤销前x次操作(只包括T和U)
Q x:询问当前第x个字符


解题思路

对于50%的数据U不会撤销到U

所以我们可以直接暴力

#include<cstdio>
#include<iostream>
using namespace std;
int n,x,w;
char c,a[100001];
int main()
{scanf("%d\n",&n);for (int i=1;i<=n;i++){cin>>c;if (c=='U'){scanf("%d",&x);w-=x;}else if (c=='Q'){scanf("%d",&x);printf("%c\n",a[x]);}else{cin>>c;a[++w]=c;}}
}

然后正题——撤销撤销

你知道吗?它的撤销可以撤销撤销!
它还可以撤销撤销撤销
还可以撤销撤销撤销撤销
……

好了,这道题支持离线算法所以我们就用离线算法。
离线算法我们要先构一颗树,我们发现如果是TT操作的话可以直接和下一个版本相连然后加一个字母,如果是U  x操作的话那么版本xx就等于版本xk1,所以我们连边
这里写图片描述
然后用欧拉序来求所有的版本,时间负责度O(n)O(n)


代码

#include<cstdio>
#include<iostream>
#include<vector>
#define MN 100011
using namespace std;
vector<int> q[MN+1];//vertor库储存询问
struct node{int to,next,w;
}a[MN+1];
int p,x,k,tot,ls[MN+1],n,ans[MN+1];
char c,st[MN+1],s[MN+1];
void addl(int x,int y)//连边
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void dfs(int x,int sto)//欧拉序求答案
{for(int i=ls[x];i;i=a[i].next)dfs(a[i].to,sto);//自己搜索连接的版本if (s[x]) st[sto]=s[x],dfs(x+1,sto+1);//直接接到下一个版本for (int i=0;i<q[x].size();i++)ans[q[x][i]]=st[ans[q[x][i]]];//计算答案
}
int main()
{scanf("%d\n",&n);for (int i=1;i<=n;i++){cin>>c;if (c=='T'){cin>>s[k++];//标记操作}else if (c=='Q'){scanf("%d",&x);q[k].push_back(++p);//记录询问ans[p]=x;}else if (c=='U'){k++;scanf("%d",&x);addl(k-x-1,k);//连边}}dfs(0,1);//求答案for (int i=1;i<=p;i++)if (ans[i]) printf("%c\n",ans[i]);//原序输出
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你也可以做一个简易抽奖程序!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。今天给大家分享一个使用winform制作的小案例——随机点名&#xff08;抽奖&#xff09;程序&#xff0c;下面我们来看看运行结果&#xff1a;在班内点名为了公平起见&#xff0c;一直使用的…

ASP.NET Core 2.0 特性介绍和使用指南

ASP.NET Core 2.0 发布日期&#xff1a;2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布&#xff0c;发布Visual Studio 2017 15.3支持ASP.NET Core 2.0&#xff0c;提供新的Razor Pages项目模板。 详细发布信息查看.NET Core 2.0.0发布说明文档 最新版SDK下载&…

blog项目中遇到的问题及解决

1、dependencesmangement 只做资源定位 2、多模块开发中mapper扫描 3、lambda表达式简写时&#xff08;使用lombox建造者模式&#xff09; 4、新增评论时 使用mp的自动填充时userid未赋值

你在学校我安排了你没有做到最多凶你一顿,在公司不一样,直接得让走人!...

今天放一部分聊天记录吧~毛帅龙同学穆老师我今天跟着公司做项目了雄雄的小课堂可以呀雄雄的小课堂厉害了雄雄的小课堂好好干哈雄雄的小课堂等有空了出一套若依的文档雄雄的小课堂给大家分享分享毛帅龙同学那个ruoyi视频买了雄雄的小课堂199&#xff1f;毛帅龙同学现在每天看两个…

2018/7/10-纪中某C组题【jzoj3792,jzoj3793,jzoj3794】

前言 由于B组题目太残酷&#xff0c;忒容易爆零&#xff0c;于是我就回到了C组温暖的怀抱 今日说法分数 正题 T1&#xff1a;jzoj3792,P2062-分队问题【贪心】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/article/details/80988719 T2&#xff1a;jzoj3793,…

ASP.NET Core 源码学习之 Logging[2]:Configure

在上一章中&#xff0c;我们对 ASP.NET Logging 系统做了一个整体的介绍&#xff0c;而在本章中则开始从最基本的配置开始&#xff0c;逐步深入到源码当中去。 默认配置 在 ASP.NET Core 2.0 中&#xff0c;对默认配置做了很大的简化&#xff0c;并把一些基本配置移动到了程序…

两个月拿到N个offer,看看我是如何做到的

转载自 两个月拿到N个offer&#xff0c;看看我是如何做到的 前言&#xff1a; 北京-三年经验-Java&#xff0c;在金三银四这两个月期间&#xff08;在五月初还去面试了几家&#xff0c;主要是三四月份期面试剧居多&#xff09;&#xff0c;我跳槽面试&#xff0c;前前后后我…

“小朋友”们节日快乐呀~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。今天是六月一日——儿童节&#xff0c;看了看朋友圈&#xff0c;不管是大孩子还是小孩子&#xff0c;都在过节&#xff0c;哈哈哈。最近四班一直在做项目&#xff0c;一共6个小组&#xff…

Entity Framework Core 2.0 全局查询过滤器

本博文翻译自&#xff1a;http://gunnarpeipman.com/2017/08/ef-core-global-query-filters/ Entity Framework Core 2.0 全局查询过滤器 Entity Framework Core 2.0引入了全局查询过滤器&#xff0c;可以在创建模型时应用到实体 。它使得构建多租户应用程序和支持对实体 的软…

SpringCloudGateway

文章目录SpringCloudGateway起步消费端整合SpringCloudGateway静态路由配置内置扩展网关过滤内置网关过滤自定义过滤全局过滤器内置全局过滤器自定义全局过滤器ForwardRoutingFilterNetty全局路由响应式负载均衡代理GatewayMetricsFilter网关度量过滤器&#xff08;服务监控&am…

来自一位家长的肺腑之言,句句在理!!!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。今天分享一段话&#xff0c;原创来自三班的一位同学家长&#xff0c;可所谓字字在理&#xff01;看完之后我自己也反思了好多&#xff0c;主要是思想观念的转变&#xff0c;就像佟老师给我说的一样…

jzoj1295,P1607-轻轨(庙会班车)【贪心,线段树】

前言 我考试时敲了一个不仅比正解编程复杂度高&#xff0c;而且时间更慢&#xff0c;还AC不了的费用流 垃圾代码 #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define MN 20011 using namespace std; struct node{int…

一篇文章了解RPC框架原理

转载自 一篇文章了解RPC框架原理 1.RPC框架的概念 RPC&#xff08;Remote Procedure Call&#xff09;–远程过程调用&#xff0c;通过网络通信调用不同的服务&#xff0c;共同支撑一个软件系统&#xff0c;微服务实现的基石技术。使用RPC可以解耦系统&#xff0c;方便维护…

winform分页案例简单实现方式~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。最近&#xff0c;四班在做KTV点歌系统&#xff0c;正好需要用到分页的内容&#xff0c;所以今天我就整理整理&#xff0c;写了一个简易的winfrom分页案例&#xff0c;以下是案例截图&#…

.Net Core下通过Proxy 模式 使用 WCF

.NET Core下的WCF客户端也是开源的&#xff0c;这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费WCF服务。 我们现在直接可以在 standard 2.0下调用wcf服务了&#xff0c;不过 Microsoft WCF Web Service Reference Pro…

JWT 入门

文章目录使用JWT的原因JWT结构JWT入门案例Token拦截使用JWT的原因 为了保护项目之中的数据资源&#xff0c;那么一定就需要采用认证检测机制&#xff0c;于是SpringCloud进行认证处理&#xff0c;就可以使用SpringSecurity 来实现了&#xff0c;但是如果你真的去使用了SpringSe…

当你左右看看没有发现我时,千万千万别往看……

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。周五&#xff0c;又是一个考试的周五&#xff0c;因为本周都在做项目&#xff0c;还以为同学们没有好好的备考&#xff0c;估计考的不好&#xff0c;没想到今天测试的结果是自从考试以来最…

2018/7/11-纪中某C组题【jzoj1293,jzoj1294,jzoj1295】

前言 今天C组题目有毒&#xff0c;第一题题目玄学&#xff0c;第二题就是不会&#xff0c;第三题考的贼偏。fw(hjw&#xff0c;his博客&#xff1a;https://blog.csdn.net/gx_man_vip)说今天B组题目还行早知道就去做B组了qwq 今日分数 去掉了十分强大的纪中dalao 正题 T1&…

关系型数据库的分片原则

来自Citus的Ozgun Erdogan分享了进行数据库分片的三个原则&#xff0c;并强调应用类型是决定数据库分片最主要的因素。其中B2B类型的应用最容易进行数据库分片。 在数据库很小的时候&#xff0c;可以很容易地通过添加硬件来扩展数据库。但随着数据表数量的不断增长&#xff0c…

分布式架构--基本思想汇总

转载自 分布式架构&#xff0d;&#xff0d;基本思想汇总 在互联网大行其道的今天&#xff0c;各种分布式系统已经司空见惯。搜索引擎、电商网站、微博、微信、O2O平台。。凡是涉及到大规模用户、高并发访问的&#xff0c;无一不是分布式。 关于分布式系统&#xff0c;并没有…