csp20151203画图 解题报告和易错地方
Solution:
dfs
对于dfs:
//遇到map[u][v]==c,则不用再搜
//因为通过(u,v)到达的其它点(p,q),
//之前从(u,v)开始肯定能到达(p,q),(p,q)已经被填充了
注意:
if (map[x1][i]=='-' || map[x1][i]=='+')
map[x1][i]='+';
else
map[x1][i]='|';
不要写成了
if (map[x1][i]=='-')
map[x1][i]='+';
else
map[x1][i]='|';
如果原来是‘+’,加了一竖仍是’|'
#include <stdio.h>
#include <stdlib.h>
#define maxm 102
#define maxn 102 char map[maxm][maxn],c;
long m,n; void dfs(long x,long y)
{
//遇到map[u][v]==c,则不用再搜
//因为通过(u,v)到达的其它点(p,q),
//之前从(u,v)开始肯定能到达(p,q),(p,q)已经被填充了
map[x][y]=c;
if (x!= && map[x-][y]!=c && map[x-][y]!='|'
&& map[x-][y]!='-' && map[x-][y]!='+')
dfs(x-,y); if (x!=m- && map[x+][y]!=c && map[x+][y]!='|'
&& map[x+][y]!='-' && map[x+][y]!='+')
dfs(x+,y); if (y!= && map[x][y-]!=c && map[x][y-]!='|'
&& map[x][y-]!='-' && map[x][y-]!='+')
dfs(x,y-); if (y!=n- && map[x][y+]!=c && map[x][y+]!='|'
&& map[x][y+]!='-' && map[x][y+]!='+')
dfs(x,y+);
} int main()
{
long x1,y1,x2,y2,x,y,q,l,i,j,mode,temp;
scanf("%ld%ld%ld",&m,&n,&q);
for (i=;i<m;i++)
for (j=;j<n;j++)
map[i][j]='.';
for (l=;l<=q;l++)
{
scanf("%ld",&mode);
if (mode==)
{
scanf("%ld%ld%ld%ld",&x1,&y1,&x2,&y2);
if (x1==x2)
{
if (y1>y2)
{
temp=y1;
y1=y2;
y2=temp;
}
for (i=y1;i<=y2;i++)
if (map[x1][i]=='-' || map[x1][i]=='+')
map[x1][i]='+';
else
map[x1][i]='|';
}
else
{
if (x1>x2)
{
temp=x1;
x1=x2;
x2=temp;
}
for (i=x1;i<=x2;i++)
if (map[i][y1]=='|' || map[i][y1]=='+')
map[i][y1]='+';
else
map[i][y1]='-';
}
}
else
{
scanf("%ld %ld %c",&x,&y,&c);
//从(x,y)开始能到达的点
dfs(x,y);
}
}
for (i=n-;i>=;i--)
{
for (j=;j<m;j++)
printf("%c",map[j][i]);
printf("\n");
}
return ;
}
/*
16 13 9
0 3 1 12 1
0 12 1 12 10
0 12 10 3 10
0 3 10 3 1
0 5 6 10 6
0 10 6 10 8
0 10 8 5 8
0 5 8 5 6
1 5 4 A
*/
拓展:
矩形填充颜色
1.
x,y范围很大,如0~10000000
Solution:离散化
2.
很多组数据,如100000000组数据,但但x,y范围较小
逆推,一个位置的值为最后一个填充的值
csp20151203画图 解题报告和易错地方的更多相关文章
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- ZOJ_3950_How Many Nines 解题报告及如何对程序进行测试修改
The 17th Zhejiang University Programming Contest Sponsored by TuSimple Solution: #include <stdio. ...
- CYJian的水题大赛2 解题报告
这场比赛是前几天洛谷上 暮雪﹃紛紛dalao的个人公开赛,当时基本上都在水暴力分......也没有好好写正解(可能除了T1) 过了几天颓废的日子之后,本蒟蒻觉得应该卓越一下了qwq,所以就打算写一个解 ...
- USACO Section1.4 Arithmetic Progressions 解题报告
ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
- USACO Section1.2 Transformations 解题报告
transform解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...
- LeetCode :1.两数之和 解题报告及算法优化思路
最近开始重拾算法,在 LeetCode上刷题.顺便也记录下解题报告以及优化思路. 题目链接:1.两数之和 题意 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 ...
- Codeforces Round 662 赛后解题报告(A-E2)
Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...
- 【九度OJ】题目1177:查找 解题报告
[九度OJ]题目1177:查找 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1177 题目描述: 读入一组字符串(待操作的),再读入 ...
- 【九度OJ】题目1444:More is better 解题报告
[九度OJ]题目1444:More is better 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1444 题目描述: ...
随机推荐
- Docker 创建容器以及管理命令(三)
1. 创建 Apache 容器 [root@centos7 ~]# docker run -d -p : httpd // -d: 放入后台运行 // -p: 指定端口映射关系(第一个为本地端口.第二 ...
- 【URLOS开发入门】docker官方系统镜像——Alpine入门教程
我们在进行URLOS应用开发时,经常会用到一些基础系统镜像,如:ubuntu.CentOS.Debian等,我们可以通过docker pull命令直接拉取官方镜像. root@ubuntu:~# do ...
- C++编写四则运算生成程序
1.计划方案 按照预定计划,在时限为一周时,完成该程序所需时间大致如下表: PSP2.1 Personal Software Process Stages Time Planning 计划 · Est ...
- 《linux内核设计与实现》第三章
1.进程 进程就是正在执行的程序代码的实时结果,不仅包含可执行代码,还包括其他资源,比如:打开的文件,挂起的信号,内核内部数据结构,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程 ...
- 20135323符运锦----LINUX第二次实践:内核模块编译
Linux实践二--模块 一.知识点总结 ①Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率 ...
- SpringBoot-简单实例
在进行实例之前,首先须确保电脑环境变量已经配置好,包括jdk.maven.此文章不做描述,不清楚自行百度. 第一步:来到springboot官网(https://start.spring.io/)下载 ...
- Spring整合SpringMVC
整合:把在springMVC配置文件中的spring提取出来整合为另一份配置文件 希望: 1).Spring的配置文件只是用来配置和业务逻辑有关的功能(数据源.事务控制.切面....) 2).Spri ...
- mysql 记录根据日期字段倒序输出
我们知道倒序输出是很简单的 select * from table order by id desc 直接这样就可以 那么现在的问题在于日期字段怎么来倒序输出 这里我们用到cast()来将指定的字段转 ...
- No input file specified ci
1. php.ini(/etc/php5/cgi/php.ini)的配置中这两项cgi.fix_pathinfo=1 (这个是自己添加的)
- 梯度、散度、旋度、Jacobian、Hessian、Laplacian 的关系图
转自松鼠的窝 一.入门