第六届CCF计算机职业资格认证考试题解(第三题)(画图)

之前在CSDN上看到别人的代码,跑了下,发现官方给的第一个测例是过不去的,但是提交上去之后是100分,猜测是判题系统中并没有使用题目中给的第一个测例。

另,之前自己写的代码是零分,后来发现是字符之间多输出了空格,以后还是要认真看题。

最后改了之后,是90分,后来经人指正,是没有考虑到划线时遇到‘+‘时的情况,不论是画‘|‘还是‘-‘,遇到‘+‘时仍旧要保持‘+‘号.

原文:http://blog.csdn.net/jaster_wisdom/article/details/51059144

一下是修改之后的代码,可以跑过所有测例。

#include <stdio.h>
#include <stdlib.h>

int n,m,q;
int do1_x,do1_y;
char do1_c;
int do0_x1,do0_x2,do0_y1,do0_y2;
char flag[100][100];

int draw1(int x,int y,char c)
{
if(x < 0 || x >= n)
{
return 0;
}
if(y < 0 || y >= m)
{
return 0;
}
if(flag[x][y] == ‘+‘ || flag[x][y] == ‘-‘ || flag[x][y] == ‘|‘)
{
return 0;
}
else if(flag[x][y] == c)
{
return 0;
}
else
{
flag[x][y] = c;
draw1(x+1,y,c);
draw1(x-1,y,c);
draw1(x,y+1,c);
draw1(x,y-1,c);
}
return 0;
}

int draw0(int x1,int y1,int x2,int y2)
{
int t;
int i;
if(x1 == x2)
{
if(y1 > y2)
{
t = y2;
y2 = y1;
y1 = t;
}
for(i = y1;i <= y2; i++)
{
if(flag[x1][i] == ‘|‘)
{
flag[x1][i] = ‘+‘;
}
else if(flag[x1][i] == ‘+‘)
{
continue;
}
else
{
flag[x1][i] = ‘-‘;
}
}

}
else if(y1 == y2)
{
if(x1 > x2)
{
t = x2;
x2 = x1;
x1 = t;
}
for(i = x1;i <= x2;i++)
{

if(flag[i][y1] == ‘-‘)
{
flag[i][y1] = ‘+‘;
}
else if(flag[i][y1] == ‘+‘)
{
continue;
}
else
{
flag[i][y1] = ‘|‘;
}
}
}
else
{
printf("Error:x1 != x2 && y1 != y2\n");
}
return 0;
}

int initial()
{
int i,j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
flag[i][j] = ‘.‘;
}
}
return 0;
}

int read_draw()
{
int i;
int mark;
scanf("%d %d %d",&m,&n,&q);
for(i=0;i<q;i++)
{
scanf("%d",&mark);
if(mark == 1)
{
scanf("%d %d %c",&do1_y,&do1_x,&do1_c);
draw1(do1_x,do1_y,do1_c);
}
else
{
scanf("%d %d %d %d",&do0_y1,&do0_x1,&do0_y2,&do0_x2);
draw0(do0_x1,do0_y1,do0_x2,do0_y2);
}
}
return 0;
}

int pri()
{
int i,j;
for(i=n-1;i>=0;i--)
{
if(i != (n-1))
{
printf("\n");
}
for(j=0;j<m;j++)
{
printf("%c",flag[i][j]);
}
}
return 0;
}

int main()
{
initial();
read_draw();
pri();
return 0;
}

时间: 2024-08-27 08:52:34

第六届CCF计算机职业资格认证考试题解(第三题)(画图)的相关文章

CCF计算机职业资格认证考试 201809-2 买菜

以下内容过于幼稚,请大佬自觉绕道.. 题目描述: 时间限制:1.0s内存限制:256.0MB问题描述:问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车.具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]...[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]...[cn,dn]在装车.其中,一个时间段[s, t]表示的是从时刻s到时刻

CCF计算机职业资格认证 2015年3月第2题 数字排序 解法和思路

问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数. 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数.按出现次数递减的顺序输出.如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的. 样例输入 12 5 2 3 3 1 3 4 2 5 2 3 5 样例输出 3 4 2 3 5 3 1 1 4 1 评

湖南省第六届大学生计算机程序设计竞赛---弟弟的作业

1007: 弟弟的作业 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 3 [提交][状态][讨论版] 题目描述 你的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他检查一下.每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数:c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算. 输入 输入文件包含不超过100行,以文件结束符结尾.每

湖南省第六届大学生计算机程序设计竞赛---汽水瓶

1006: 汽水瓶 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 3 [提交][状态][讨论版] 题目描写叙述 有这样一道智力题:"某商店规定:三个空汽水瓶能够换一瓶汽水.小张手上有十个空汽水瓶.她最多能够换多少瓶汽水喝?"答案是5瓶,方法例如以下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子. 然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板.假设小张手上有n

湖南省第六届大学生计算机程序设计竞赛---数字整除

1008: 数字整除 时间限制: 1 Sec  内存限制: 128 MB 提交: 6  解决: 4 [提交][状态][讨论版] 题目描述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍.当且仅当差是17的倍数时,原数也是17的倍数 . 例如,34是17的倍数,因为3-20=-17是17的倍数:201不是17的倍数,因为20-5=15不是17的倍数.输入一个正整数n,你的任务是判断它是否是17的倍数. 输入 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整

1、开篇:软件职业资格水平考试 - 软件职业资格考试系列文章

计算机技术与软件专业技术资格(水平)考试简称软考,是国家对软件行业的从业人员的软件水平的一种认证考试,也是个人的一种职称考试.该证书是对中国以及日本的软件行业所认可的. 软考到现在已经有几十年历史了,从笔者大学时的初级程序员,现在称为软件工程师的考试,到现在项目管理工程师,都记录着国家对这个行业领域的关爱,也是国家软件领域的标准化和体系化的见证. 这个系列,主要记录笔者对软考的知识点的记录和认识,希望能够帮助到需要相关软考职称考试的朋友们. 级别 资格名称 考试时间 考试科目 高级 信息系统项目

第六届福建省大学生程序设计竞赛不完全题解

昨天自己队做了一下第六届福建省赛,感觉有些蒙,赛后补了几道题,能力有限,一共只出A了7道题 A题   Super Mobile Charger 题目链接 http://acm.fzu.edu.cn/problem.php?pid=2212 水题 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int a[10005]; int b[10005]; int main(

希尔加密算法(湖南师范大学第六届大学生计算机程序设计竞赛)hnuoj11552

解密 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 2, Accepted users: 0 Problem 11552 : No special judgement Problem description 密码学中,有一种加密方法,叫做希尔加密法.其加密步骤如下: Step1:将待加密的字符串s={s[0], s[1], -- ,s[n-1]} (为简单起见,在本题

2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路

这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定最危险的人群→针对这些人群的预防活动 被贩卖的因素(卷入人口贩运的风险因素): 贫困.失业.移民.逃避政治冲突.战争. 第二问:受害者身份和位置 发现:人口贩运网:动态的 贩毒者:频繁地改变分布.运输路线 (以避免被发现) ↓(信息不完整) 执法人员和分析人员→试图识别.摧毁 人口贩卖网络→(信息不