`
tudusi
  • 浏览: 1085197 次
文章分类
社区版块
存档分类
最新评论

[ACM]图形编辑器

 
阅读更多

原题见:http://acm.uva.es/p/v102/10267.html

背景

图形编辑器(graphical editor)允许用户改变位图图像,比如大家经常用到的Photoshop。它所采用的改变方法和文本编辑器允许修改文档的方法一样。位图图像由MxN的像素矩阵来表示,并且每个像素点都有给定的颜色。

我们的任务就是来要编写一个程序来模拟一个简单的交互式图形编辑器。

输入

输入由一组编辑命令序列组成,每条序列占一行。每个命令都是由一个大写字母表示的,且放在每行序列首字符的位置上。如果命令需要带参数,那么给出的参数将和命令放在同一行,并用空格相互隔开。 像素点的坐标用两个整数表示,列坐标的范围是从1到M,而行坐标的范围则是从1到N(1<M,N<=250)。坐标原点位于矩阵的左上角。像素点的颜色由大写字母指定。

下面描述了图形编辑器可以接收的命令内容:

I M N 表示产生一个新的MxN大小的图像,并且图像中所有像素点的初始颜色都为白色(0)。
C 表示通过把所有像素点设置为白色的方法来清除表格。且矩阵的大小保持不变。
L X Y C 表示把坐标为(X,Y)的像素点的颜色涂成颜色(C)。
V X Y1 Y2 C 表示画一条颜色为(C)的垂直线段,线段的列坐标为X,行坐标在Y1到Y2之间,并且包括Y1和Y2两点。
H X1 X2 Y C 表示画一条颜色为(C)的水平线段,线段的行坐标为Y,列坐标在X1到X2之间,并且包括X1和X2两点。
K X1 Y1 X2 Y2 C 表示画一个填充颜色为(C)的矩形,坐标(X1,Y1)和(X2,Y2)表示矩形相对的两个角。
F X Y C 表示用颜色(C)填充区域R。区域R的定义如下:像素点(X,Y)属于区域R。和像素点(X,Y)颜色一样,并且与区域R内的任何像素点共享一个公共边的其他任何像素点也都属于区域R。
S Name 表示用MSDOS 8.3的格式写文件名,并且文件名后边跟着当前图像的内容。
X 表示终止此次对话操作。

输出

在执行每一个S NAME命令时,打印出用NAME(不超过70个字符)命名的文件名(占一行),以及当前图像的内容。图像的每一行用每个像素点的颜色内容来表示。参见输出样例。

输出要忽略掉不用上述字母(即I、C、L、V、H、K、F、S和X)定义的任何命令行,并且继续执行下面的命令。遇到其他错误情况时,程序的运行将无法预测。

来源

http://acm.uva.es/p/v102/10267.html

测试输入帮助,input (新窗口)期待的输出帮助,expectedoutput (新窗口)时间限制帮助,timelimit (新窗口)内存限制帮助,memlimit (新窗口)额外进程帮助,nproc (新窗口)测试用例 1测试用例 2
以文本方式显示
  1. I56↵
  2. L23A↵
  3. Sone.bmp↵
  4. G23J↵
  5. F33J↵
  6. V234W↵
  7. H342Z↵
  8. Stwo.bmp↵
  9. X↵
以文本方式显示
  1. one.bmp↵
  2. 00000↵
  3. 00000↵
  4. 0A000↵
  5. 00000↵
  6. 00000↵
  7. 00000↵
  8. two.bmp↵
  9. JJJJJ↵
  10. JJZZJ↵
  11. JWJJJ↵
  12. JWJJJ↵
  13. JJJJJ↵
  14. JJJJJ↵
1秒 1024KB 0
以文本方式显示
  1. I119↵
  2. F11`↵
  3. H1111O↵
  4. H1119O↵
  5. V128O↵
  6. V1128O↵
  7. L43O↵
  8. L34O↵
  9. L83O↵
  10. L94O↵
  11. K3699O↵
  12. H487`↵
  13. H488`↵
  14. SJIONG.BMP↵
  15. X↵
以文本方式显示
  1. JIONG.BMP↵
  2. OOOOOOOOOOO↵
  3. O`````````O↵
  4. O``O```O``O↵
  5. O`O`````O`O↵
  6. O`````````O↵
  7. O`OOOOOOO`O↵
  8. O`O`````O`O↵
  9. O`O`````O`O↵
  10. OOOOOOOOOOO↵
1秒 1024KB 0
这个题目比较直接,唯一的难点在于F操作:表示用颜色(C)填充区域R,可以用DFS实现,通过递归,因为是字符操作,不是特别复杂,不会操作内存限制!还可以采用BFS,这要借助队列,可以定义一个N * N行 2 列的一个二维数组,这样实现起来比较复杂,但是节省了时间和空间,我采用的是递归的DFS实现,见代码:



分享到:
评论

相关推荐

    LAME3.92经典MP3编码器(ACM版)

    使用LAME3.92 ACM版进行MP3编码时,用户可以通过音频编辑软件如Audacity、Adobe Audition等,直接选择LAME ACM编码器,设置所需的比特率、采样率等参数,然后进行编码工作。这样不仅减少了手动操作的繁琐,而且由于...

    ACM 会议模板LETEX

    同时,需要一个LaTeX编辑器来编写和编译源代码,推荐使用texstudio,因为它提供了丰富的代码高亮、自动完成和错误检查功能。 使用步骤: 1. **下载与解压**:首先,从官方或可信源下载`acmart-master`压缩包,并将...

    ACM系列论文模板-ACMART

    10. **预览与编译**:使用 LaTeX 编辑器(如TeXstudio, Overleaf等)编写完成后,通过编译(通常是运行pdflatex或xelatex)生成PDF预览,检查格式和内容是否符合ACM规范。 了解并掌握ACMART模板的使用,可以帮助...

    ACM竞赛讲解知识点

    10. **AC自动机**:一种高效的字符串匹配算法,用于处理大量模式的搜索问题,如文本编辑器中的自动补全功能。 11. **RMQ-LCA-1RMQ**:RMQ(Range Minimum Query)是查询区间最小值的问题,LCA(Lowest Common ...

    ACM模板-f_zyj v

    1. STL标准模板库:STL(Standard Template Library)是C++的标准库之一,它包括了算法(algorithm)、迭代器(iterator)、容器(container)等部分,极大地方便了程序员的编码工作。该模板中将涉及STL中的基本组件...

    kuangbin的ACM模板

    根据提供的信息,我们可以...- **概念**:配置 VIM 编辑器以提高编程效率。 - **应用场景**:几乎所有需要编写代码的场景。 以上是对给定文件标题和描述中的知识点的详细解释,涵盖了算法设计与实现方面的多个主题。

    北大、杭电ACM试题分类

    几何学问题涉及到图形的位置、大小、形状及其性质,常见的问题包括计算图形的面积、周长等。 2. **凸包** - POJ 1408, POJ 1584 凸包问题涉及到寻找一组点构成的凸多边形边界,有多种算法可以解决这个问题,如...

    论文编辑器CTeX

    CTeX是一款专为中文用户设计的LaTeX编辑器,是论文编辑的得力助手,尤其对于学术界人士和学生来说,它极大地简化了复杂的文本排版工作。LaTeX是一种基于TeX的文字处理系统,用于高质量的排版,尤其是数学公式、科技...

    acm计算几何模版.

    - **应用场景**: 用于游戏开发中的碰撞检测或地图编辑器中的对象定位。 ##### 7. 求矢量夹角余弦 - **定义**: 计算两个向量之间的夹角余弦值。 - **应用场景**: 用于计算角度或确定向量的方向。 ##### 8. 求线段...

    acm竞赛精讲

    - **应用**:文本编辑器、搜索引擎等。 - **实现思路**:遍历字符串,找到目标子串并进行替换。 2. **字符串查找**: - **功能**:在字符串中搜索特定子串。 - **应用**:文本检索、模式匹配等。 - **实现思路...

    ACM模板-Anoyer.pdf

    4. 编辑距离算法计算两个字符串之间的最小编辑距离。 5. Karp-Rabin算法用于字符串模式匹配。 6. AC自动机和trie树用于处理多模式串匹配问题。 7. 字符串Hash用于快速比较字符串的相似度。 8. Sunday算法是一种基于...

    C编译器-C-Free

    7. **资源管理**:集成资源编辑器,可以处理如菜单、对话框等资源,为编写带有图形界面的应用程序提供便利。 **二、ACM程序设计大赛与C-Free** ACM程序设计大赛是全球顶级的计算机科学竞赛,强调团队合作和算法...

    pc2-9.1.5-1969.zip

    5. **用户界面**:允许用户交互的图形界面,包括代码编辑器、提交按钮、结果查看器等。 6. **文档**:关于如何使用该软件、如何理解题目以及如何提交代码的指南和教程。 7. **示例代码**:演示如何解决特定问题的...

    {广告传媒}某在线数字广告制作投放平台融资计划书.pdf

    4. 落地页/到达页HTML5Editor编辑器,用于设计和制作HTML5页面,包括图形、动画和数据编辑,便于创建HTML5轻应用。 综上所述,这个在线数字广告制作投放平台的目标是通过技术创新和程序化服务,优化广告行业的运营...

    R-fundamentals

    - **Emacs/Ess**:这是一种在Emacs编辑器中运行的R语言环境,适用于喜欢使用Emacs作为主要编辑器的用户。 #### 五、总结 R语言作为一种开源的统计计算语言,不仅拥有强大的统计功能,而且由于其活跃的社区和丰富的...

    ArmyVsBigBlueMonster:MSU ACM俱乐部项目搭建一个简单的Android游戏

    3. **图形资源**:创建游戏的角色、背景和其他元素的图片资源,可能需要使用图像编辑软件如Photoshop或免费的开源工具。 4. **游戏逻辑**:用Java编写游戏的核心逻辑,包括角色移动、碰撞检测、得分系统、游戏状态...

    收集上各种实用 LaTeX 中文模版

    与 WYSIWYG(所见即所得)编辑器不同,LaTeX 强调内容与格式分离,让作者专注于文本内容,而排版由 LaTeX 自动完成。它支持复杂的数学公式、图形插入、自动引用管理和交叉引用。 2. LaTeX 中文支持: 在 LaTeX 中...

    计算机文件常用扩展名.doc

    例如,TXT文件可以用任何文本编辑器打开,DOC文件则需要Word或兼容的软件,如WPS。压缩文件RAR和ZIP可以使用WinRAR或WinZip解压,而图像文件如BMP、GIF、JPG等则可以使用Photoshop、Paint.NET等图像处理软件打开。...

    win tc 191 初学c语言专用编程工具

    2. **源代码编辑器**:内置的文本编辑器支持语法高亮,使得代码更易读,有助于初学者理解程序结构。此外,它还具备自动缩进、代码提示等实用功能,帮助初学者规范代码书写。 3. **编译器支持**:WinTC 191通常与 ...

    一天一点Latex.pdf

    而在Macintosh上,TeXShop和iTeXMac是两款可用的编辑器,但它们对中文的支持和与DVI的交互性可能不尽如人意。 LaTeX在学术出版中占据着重要的地位,随着开源社区的支持和持续的发展,它将继续作为科学和技术文档...

Global site tag (gtag.js) - Google Analytics