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. Oracle数据库重做日志及归档日志的工作原理说明

    Oracle数据库重做日志及归档日志的工作原理: lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满 ...

  2. Netdata---Linux系统性能实时监控平台部署记录

    通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况.下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具 ...

  3. iOS实时查看App运行日志

    前言: 本文讨论如何实时查看输出在console控制台的日志. 一.Xcode 通过Window->Devices打开devices界面,选择我们的手机,也能看到手机中运行的进程输出的日志.如图 ...

  4. Adobe Photoshop CC 2015使用及扩展工具

    VAdobe Photoshop CC 2015: 简称"PS",是由Adobe Systems开发和发行的图像处理软件 扩展工具: Cuuterman:切图插件: 一个一个切图, ...

  5. M2postmortem

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 答:我们的软件主要解决信息提取的问题.定义清晰:要提取的内容包括于计算机科学相关内容的标题.作者. ...

  6. linux第四次读书笔记

    第四章:进程调度 一.多任务 1.非抢占式多任务 进程会一直执行直到自己主动停止运行(这一步骤称为让步) 2.抢占式多任务 Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占.进 ...

  7. 软件工程项目之摄影App(第二次冲刺)

    第二次冲刺阶段做出了登录,还有首页.基本界面也成型了. 登录验证码是用了mob的验证码skd.

  8. CI框架2.x的验证码中所遇问题解决

    用php版本是5.6,CI框架版本是2.x,在使用验证码(captcha)时,遇到一些问题. 首先,我查看框架手册,说必需的两个参数是"img_url",“img_path”,其他 ...

  9. ubuntu默认壁纸位置

    usr/share/backgrounds和usr/share/wallpapers

  10. datatime

    /把一个日期字符串如“2007-2-28 10:18:30”转换为Date对象 var   strArray=str.split("   "); var   strDate=str ...