编辑器

article/2025/10/26 8:45:21

问题描述


你现在要实现一个针对于数字序列的编辑器。
初始的时候,序列是空的。
在之后,有以下五种操作:
I x 在光标之后插入x
D 删除光标之前的数字
L 将光标向左移动,如果已经在最左,则不移动
R 将光标向右移动,如果已经在最右,则不移动
Q k 假设光标之前的序列是{a1, a2,...,an}, 定义Si=a1+a2+...+ai,此时输出满足1<=i<=k的最大的Si

输入包含多组数据,文件结尾作为输入结束的标志。
每组数据的第一行包含一个数字Q,表示有Q个操作。接下来有Q行,每行为一条上述指令。
1<=Q<=1000000, 插入操作中的x:|x| <= 1000,Q操作中的k:1<=k<=n
对于Q指令,输出要求的结果。

以下是样例的具体操作过程:


测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 8↵
  2. I 2↵
  3. I -1↵
  4. I 1↵
  5. Q 3↵
  6. L↵
  7. D↵
  8. R↵
  9. Q 2↵
以文本方式显示
  1. 2↵
  2. 3↵
1秒 64M 0
题解思路

大致思路:

利用双栈进行维护,光标左边为一个栈,光标右边为一个栈。遇到I的时候就将其假如左边的栈,遇到D就删去左边栈的栈顶元素,遇到R就将右边栈顶的元素假如左边栈,遇到L就将左边栈顶元素假如右边栈中,遇到Q就输出前k个元素中和最大的值(此处用动态规划的方法每次当元素进入左栈的时候就记录该元素以前的最大和)。就这样依次输出就好了。

具体实现:

两个数组,一个为左栈,一个为右栈,遇到相应的字符就进行相应的操作,跟大致思路里面一样,用两个指针就可以实现。对于求和问题,就利用动态规划的思想,左栈每进入一个元素就记录到这个元素为止的最大和,用一个数组记录,然后遇到Q就输出相应的值。

注意事项:

(1)注意数组的初始化。

(2)注意如果光标到最左边或是到最右边,即左栈或是右栈元素为0的时候就不需要进行相关操作了。


实现代码


<span style="font-family:Microsoft YaHei;font-size:14px;">#include<stdio.h>
#include<string.h>
int max(int x,int y)
{if(x>y){return x;}else{return y;}
}
int dp[1000010],he[1000010];               //动态规划的思想计算前面书和最大 
int left[1000010],right[1000010];    //使用双栈 
int main()
{int n,l,r,i,x,k;char temp[2];while(scanf("%d",&n)!=EOF){memset(dp,0,sizeof(dp));memset(he,0,sizeof(he));memset(temp,0,sizeof(temp));dp[0]=-1000010;l=0;r=0;for(i=0;i<n;i++){scanf("%s",temp);      //防止空格和回车键的影响用%s读入,这样就不需要考虑空格和回车键 if(temp[0]=='I'){scanf("%d",&x);l++;left[l]=x;//	l++;he[l]=he[l-1]+x;            //添加数到左边,并用动态规划的思想记录前l个数的最大和 dp[l]=max(he[l],dp[l-1]);}else if(temp[0]=='D'){if(l!=0){l--;}//移动指针,删除元素 }else if(temp[0]=='L'){if(l!=0){r++;right[r]=left[l];l--;//	r++;                 //左移光标,利用指针的变化,对两个栈进行入栈和出栈的操作//	l--;}}else if(temp[0]=='R'){if(r!=0){l++;left[l]=right[r];//l++;r--;he[l]=he[l-1]+left[l];         dp[l]=max(he[l],dp[l-1]);       //右移光标,利用指针的变化,对两个栈进行入栈和出栈操作,并对左侧的和进行更新 //	l++;//	r--;}}else if(temp[0]=='Q'){scanf("%d",&k);if(l==0){printf("0\n");}else{printf("%d\n",dp[k]);}}else;	}}return 0;		
}</span>



http://chatgpt.dhexx.cn/article/o3PM7pWy.shtml

相关文章

代码编辑器

文章来源&#xff1a;几款非常优秀且常用的代码编辑器 ... VS CodeSource InsightVimUltraEditeclipseUnderstandAtomSublime Text 对于软件开发人员&#xff0c;代码编辑器好用与否直接影响代码编辑的效率。软件开发&#xff0c;基本上都有集成开发环境&#xff08;IDE&#x…

Unity的编辑器

1大部分人Unity编辑器是vistual 2.变量 2.1新建C#文件 鼠标点击Assets-->再点击create-->点击C#Sprite 2.2先用鼠标点击游戏物体(Cube)将c#文件拖拽到Inspector下&#xff0c;双击C#文件可以进入编写代码 2.3变量 public 变量类型 变量; //公有属性在Inspector下可…

游戏编辑器框架

原文&#xff1a;http://www.cnblogs.com/winsonchen/archive/2008/03/29/1128575.html 《游戏创造》08年第二期有一篇关于“&#xff57;xWidget游戏编辑器框架”开发的文章&#xff0c;作者使用过unreal引擎&#xff0c;熟悉unreal编辑器实现细节。该作者建议采用wWidget开发…

RPG++——游戏编辑器的开发

完整资料进入【数字空间】查看——baidu搜索"writebug" 随着当下电子设备的普及以及人们对娱乐需求的上升&#xff0c;电子游戏逐渐走进千家万户。RPG&#xff08;角色扮演&#xff09;游戏作为最经典的游戏种类之一&#xff0c;因其游戏形式多样&#xff0c;自由度…

RPG或SLG游戏在线地图编辑器

有做大型RPG或SLG游戏需求的朋友请进&#xff0c;有在线地图编辑器 我凭借多年的游戏开发经验&#xff0c;用cocoscreator2.13开发了一款web在线地图编辑器&#xff0c;暂且命名为EasyMapEditor&#xff0c;用Google浏览器打开&#xff0c;提供了从在线地图编辑到正式项目运行…

游戏编辑器制作(10)

差不多一年左右没有更新了&#xff0c;今天把这段时间的工作内容记录一下&#xff0c;从上一篇开始&#xff0c;制了很多相关功能&#xff0c;花了很多时间研究了RTS游戏的结构部分&#xff0c;也研究了RVO&#xff0c;还有些著名的开源游戏代码。自己实现了自己的rtssim(RTS模…

从零开始入门创作游戏——Unity编辑器的使用

还没找到工作的我继续瞎折腾中&#xff0c;上次搭建环境就花了我3天的时间 从零开始入门创作游戏——Unity3d的环境搭建_默哀d的博客-CSDN博客 接下来是根据油土鳖的视频学习创作的一个小恐龙跳跳跳游戏&#xff0c;直接上手做一次学得更多 https://www.youtube.com/watch?…

[转]2d游戏开发:游戏地图编辑器

2d游戏开发&#xff1a;游戏地图编辑器 akinggw 金桥信息 2006-06-15 游戏地图编辑器 作者&#xff1a;akinggw 朋友们&#xff0c;大家好! 今天&#xff0c;我们将讲解游戏开发中一个重要的工具DD“游戏地图编辑器”。 几乎任何一款商业游戏都有自己的游戏地图编辑器&am…

Unity 编辑器(UnityEditor)

<small>前几天开始准备看源码&#xff0c;结合自己工作使用Lua&#xff0c;想看sLua框架源码&#xff0c;但是Lua确实不太熟悉&#xff0c;于是还是选择C#&#xff0c;打算看NGUI的源码&#xff08;因为工作中也有用到&#xff09;。 自己看源码经验不是很多&#xff0c;…

游戏编辑器制作(3)

最近抽时间加入了自由的地表纹理编辑和地型升、降、平滑、平整等功能&#xff0c;把编辑操作等结构优化了一下&#xff0c;各功能代码更清晰了便于接下来大量功能的开发。也加入了简单的操作界面功能。截图记录一下。

游戏编辑器制作(4)

今天加入了一个简单的Lambert光照效果。重新计算了地面的法线。另外地形编辑工具已全部实现。加入了回退&#xff0c;重做系统。截图记录一下。

游戏编辑器制作(6)

这几天因为新冠疫情原因被隔离了几天&#xff0c;在家里把地形功能基本完成了&#xff0c;实现了下陷悬崖&#xff0c;实现了高级的悬崖系统&#xff0c;也实现了浅水和深水的表现。地形这块的功能只剩下斜坡了。 截图记录一下。

Unity Editor 编辑器介绍

一、整体界面介绍&#xff1a; Project 窗口&#xff1a;列出所有的资源 Console 窗口&#xff1a;日志输出 Hierarchy 窗口&#xff1a;在Project 窗口选择一个 Scene 场景后&#xff0c;会在这个窗口显示这个构成这个场景的所有游戏对象 Inspector 窗口&#xff1a;在 Hie…

游戏编辑器制作(9)

夜阑卧听风雨&#xff0c;白日高温依旧。 何当蜀雨秋池&#xff0c;豆花白肉烧酒。 由于电力紧张&#xff0c;本周是在完全没有空调的三伏天工作的&#xff0c;温度最高达到了44度左右。基本上是赤背上阵。实现了粒子系统&#xff0c;各种显示方面的调优&#xff0c;加入了更多…

游戏编辑器制作(8)

今天在家里把阴影效果和雾效加上去了&#xff0c;还修改了一下各种操作的手感&#xff0c;现在制作地形编辑和悬崖水面等更方便了&#xff0c;一拖就可以了。下一次准备多上点资源&#xff0c;拖一个完整点的地图出来。现在快凌晨两点了&#xff0c;截图纪录一下。。。。。

游戏编辑器制作(1)

实现了地表纹理的编辑功能&#xff0c;不同大小网格的显示功能&#xff0c;截图记录一下。

游戏编辑器制作(7)

有一段时间没有更新内容了&#xff0c;最近太忙了&#xff0c;手里工作多。天气太热了&#xff0c;做得也慢&#xff0c;一天只有一两个小时开发时间。今天把模型载入&#xff0c;渲染等功能全部集成上来了。现在可以添加和编辑场景物件了。搞了些模型做测试。下一步是强化操作…

用游戏编辑器制作MOD脱颖而出

【导读】 立志成为游戏策划的你&#xff0c;和千千万万的游戏玩家的不同之处在哪&#xff1f; 是你玩过很多的游戏&#xff1f;别人也玩过 是你游戏打得比别人好&#xff1f;也许电子竞技更适合你 是你对游戏的理解比别人深&#xff0c;知道如何设计出更好玩的游戏&#xff1f…

游戏编辑器制作(5)

这几天都在搞悬崖地形系统&#xff0c;悬崖地形系统分成上两层&#xff0c;下两层。 这几天把程序框架重新设计了一下&#xff0c;可以方便实现悬崖系统了&#xff0c;悬崖地形的几何体需要动态镶嵌拼接&#xff0c;纹理坐标也要能完整地拼接到一起&#xff0c;还要能适应各种复…

游戏编辑器制作(2)

今天实现了地表纹理的圆形画刷和方形画刷以及不同画刷大小的编辑功能&#xff0c;截图记录一下&#xff01;