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 题目描述: ...
随机推荐
- Kafka(分布式发布-订阅消息系统)工作流程说明
Kafka系统架构Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和 ...
- 归并排序O(nlogn)
先分治再合并 代码 #include<bits/stdc++.h> using namespace std; #define ll long long int a[1000],t[1000 ...
- C语言与汇编衔接1
研究实验二 问题研究过程: 发问:C语言中的变量究竟是什么,通过下面的程序进行C语言中的变量的学习 图1 URL.EXE函数 为了研究main函数的首地址,我首先自作聪明的用了一条_DX=main, ...
- vs2013——单元测试&& 性能图
一.如何创建单元测试 下面这个博客中写的很详细: http://***/Article/11186 其中需要注意的是,首先新建工程项目,在此目录下Add单元测试项目,还需要在单元测试项目中引用被测试的 ...
- 实现基于SSH的门票管理系统开发的质量属性
我要做的是一个基于SSH的门票售卖系统,在系统中常见的质量属性有:可用性.可修改性.性能.安全性.易用性. 可用性方面: 可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况 ...
- java中定时执行任务
现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoup ...
- QT 子窗口退出全屏
m_pWidget代表子窗口, 子窗口显示全屏: m_pWidget->setWindowFlags(Qt::Dialog); m_pWidget->showFullScreen(); 子 ...
- 通过LVM给Linux扩容
主要参考以下两篇文章: 1:https://www.cnblogs.com/sixiweb/p/3360008.html 2:https://wenku.baidu.com/view/42deee1a ...
- 开源通用爬虫框架YayCrawler-开篇
各位好!从今天起,我将用几个篇幅的文字向大家介绍一下我的一个开源作品--YayCrawler,其在GitHub上的网址是:https://github.com/liushuishang/YayCraw ...
- jQuery(四)
get():把jQuery转化成原生js <script> $(function(){ //alert($('#div1').get(0).innerHTML); //jQuery里面也有 ...