ccf 201512-3 画图(90)
ccf 201512-3 画图(90)
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = +;//最大的行数 ,列数
char square[maxn][maxn];
bool visit[maxn][maxn];
int m,n,q;//m为列数,n为行数
const int dr[] = {-,,,};//上,左,下,右
const int dc[] = {,-,,};
bool inside(int x,int y)
{
return x>= && x<n && y>= && y<m;
}
void paintLine()
{
int x0,y0,x1,y1;
cin>>x0>>y0>>x1>>y1;
if(y0==y1)//画 - ,需要注意向右为x方向
{
for(int i=min(x0,x1);i<=max(x0,x1);i++)
{
if(square[y0][i] == '|') square[y0][i] = '+';
else square[y0][i] = '-';
}
}
else if(x0 == x1)//画| 。需要注意向左为y方向
{
for(int i=min(y0,y1);i<=max(y0,y1);i++)
{
if(square[i][x0] == '-') square[i][x0] = '+';
else square[i][x0] = '|';
}
}
} void paintChar(int x,int y,char c)
{///使用dfs
if(square[x][y] == '|' || square[x][y] == '-' || square[x][y] == '+')
{
return;
}
square[x][y] = c;
visit[x][y] = ;
for(int i=;i<=;i++)
{
if(inside(x+dr[i],y+dc[i]) && !visit[x+dr[i]][y+dc[i]])
paintChar(x+dr[i],y+dc[i],c);
}
} int main()
{
cin>>m>>n>>q;
memset(square,'.',sizeof(square));
for(int i=;i<q;i++)
{
int type;cin>>type;
if(type == )//画线
paintLine();
else //使用dfs进行填充
{
memset(visit,,sizeof(visit));
int x,y;char c;
cin>>x>>y>>c;
paintChar(y,x,c);
}
} ///进行输出
for(int i=n-;i>=;i--)
{
for(int j=;j<m;j++)
cout<<square[i][j];
cout<<endl;
} return ;
}

ccf 201512-3 画图(90)的更多相关文章
- CCF CSP 201409-2 画图
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-2 画图 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y ...
- CCF CSP 201512-3 画图
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201512-3 画图 问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ...
- CCF系列之画图(201409-2)
试题编号: 201409-2试题名称: 画图时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从 ...
- [原]OpenGL基础教程(四)VBO+纹理绘制四边形
工程下载地址:http://pan.baidu.com/s/1ntr7NHv 提取码:yf1h 一.本文牵扯知识点梳理: (1)VBO (2)纹理 (3)libpng(加载png) (4)shader ...
- CCF 201512-3 画图 (DFS搜索+模拟)
问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术.例如,下图是用 ASCII 字符画出来的 CSPRO 字样. ..____.____..____. ...
- CCF 201712-4 90分
90分,不知道错在哪里了,dijkstra算法,用一个数组的d[i]表示以i点结尾的小路的长度,以i点为中心扩展时,若下一点为k,如果i->k是小路,则 d[j] = d[k]+M[k][j]; ...
- CCF 201409-2 画图 (暴力)
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的例子.第一个矩形是 ...
- CCF真题之画图
201409-2 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的 ...
- ccf画图
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的例子.第一个矩形是 ...
随机推荐
- 上传图片,语音,和富文本(webuploader,dropzone, froala)
首先是上传图片,使用的百度webuploader 自己修改后可以实例化多个uploader对象: HTML: <!DOCTYPE html> <html xmlns="ht ...
- Java学习笔记【八、数据结构】
参考资料: http://www.cnblogs.com/janneystory/p/5758958.html array arraylist list linklist的区别 http://www. ...
- centos7 php7.3
./configure --prefix=/root/php/php-7.3.10/output \ --with-mhash \ --with-openssl \ --with-mysqli=sha ...
- 蓝牙App漏洞系列分析之二CVE-2017-0639
蓝牙App漏洞系列分析之二CVE-2017-0639 0x01 漏洞简介 Android本月的安全公告,修复了我们发现的另一个蓝牙App信息泄露漏洞,该漏洞允许攻击者获取 bluetooth用户所拥有 ...
- vue+elementui搭建后台管理界面
1 会话存储 使用html5的 sessionStorage 对象临时保存会话 // 保存会话 sessionStorage.setItem('user', username) // 删除会话 ses ...
- idea 下gradle创建springboot 项目
InterlijIdea 开发环境下创建基于springBoot的项目. 环境 1.jdk1.5以上 2.interlijidea 15 以上 步骤 1.File –>new –>Proj ...
- 8.CNN应用于手写字识别
import numpy as np from keras.datasets import mnist from keras.utils import np_utils from keras.mode ...
- 【ZJOI 2016】旅行者
题意 http://uoj.ac/problem/184 题解 大概是神题. 网格图上跑最短路有一个经典的优化方式:分治分组跑最短路. 对于这道题,设矩形长为 \(n\),宽为 \(m\),则对 \( ...
- 创建表空间 ora-01119
create tablespace user_data logging datafile 'D:\app\Administrator\oradata\orcl\ARCHIVE.dbf' size 50 ...
- top命令参数详解
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...