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画图 解题报告和易错地方的更多相关文章

  1. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  2. ZOJ_3950_How Many Nines 解题报告及如何对程序进行测试修改

    The 17th Zhejiang University Programming Contest Sponsored by TuSimple Solution: #include <stdio. ...

  3. CYJian的水题大赛2 解题报告

    这场比赛是前几天洛谷上 暮雪﹃紛紛dalao的个人公开赛,当时基本上都在水暴力分......也没有好好写正解(可能除了T1) 过了几天颓废的日子之后,本蒟蒻觉得应该卓越一下了qwq,所以就打算写一个解 ...

  4. USACO Section1.4 Arithmetic Progressions 解题报告

    ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...

  5. USACO Section1.2 Transformations 解题报告

    transform解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...

  6. LeetCode :1.两数之和 解题报告及算法优化思路

    最近开始重拾算法,在 LeetCode上刷题.顺便也记录下解题报告以及优化思路. 题目链接:1.两数之和 题意 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 ...

  7. Codeforces Round 662 赛后解题报告(A-E2)

    Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...

  8. 【九度OJ】题目1177:查找 解题报告

    [九度OJ]题目1177:查找 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1177 题目描述: 读入一组字符串(待操作的),再读入 ...

  9. 【九度OJ】题目1444:More is better 解题报告

    [九度OJ]题目1444:More is better 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1444 题目描述: ...

随机推荐

  1. Redis日常操作命令小结

    Redis缓存服务是运维工作中比较常见的一种维护工作,下面就redis日常操作命令在此做一简单小结,以备查用: 1)连接redis服务命令# redis-cli -h redis主机ip或主机域名 - ...

  2. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

  3. js异步回调

    简单理解:js是单线程的,Ajax请求远程数据.IO等会很耗时,引起堵塞可能会引起反应时间太长页面失去反应. 回调:A函数作为一个参数传给B函数,执行完B后再执行A: 同步回调: function A ...

  4. “数学口袋精灵”App的第三个Sprint计划(总结与团队感悟)----开发日记

    第三阶段Sprint完成情况: 我们的"数学口袋精灵"App已经完成了,该app能随机产生多种形式的算式,比如带括号的,分数四则运算,混合运算,阶乘等,通过游戏形式让用户乐在其中. ...

  5. 【SE】Week3 : 四则运算式生成评分工具Extension&Release Version(附加题)

    [附加题]第四阶段目标 - 界面模块,测试模块和核心模块的松耦合. 写到这里我只想吐槽一句,哪天我能写出功能复杂且真正松耦合的模块,我应该就不用写代码了吧[手动再见.. 当然这只是强调下松耦合和代码复 ...

  6. Linux curl 一例

    root@PC-RENGUOQIANG:~# curl http://kermit:kermit@192.168.66.182:8080/activiti-rest/service/repositor ...

  7. Setting Tomcat Heap Size (JVM Heap) in Eclipse

    this article picked from:http://viralpatel.net/blogs/setting-tomcat-heap-size-jvm-heap-eclipse/ Rece ...

  8. Mybatis源码分析

    MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简 ...

  9. [转帖]Gartner预测2019年全球IT支出将达到3.8万亿美元

    Gartner预测2019年全球IT支出将达到3.8万亿美元 http://server.zhiding.cn/server/2019/0130/3115439.shtml 全球领先的信息技术研究和顾 ...

  10. awk、sed、grep三大shell文本处理工具之sed的应用

    sed 流编辑器 对文本中的行,逐行处理 非交互式的编辑器 是一个编辑器 1.工作流程 1)将文件的第一行读入到自己的缓存空间(模式空间--pattern space),删除掉换行符 2)匹配,看一下 ...