试题编号: 201409-2
试题名称: 画图
时间限制: 1.0s
内存限制: 256.0MB
问题描述:

  

问题描述
在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。
  下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。
  
  给出所有要画的矩形,请问总共有多少个单位的面积被涂上颜色。
输入格式
输入的第一行包含一个整数n,表示要画的矩形的个数。
  接下来n行,每行4个非负整数,分别表示要画的矩形的左下角的横坐标与纵坐标,以及右上角的横坐标与纵坐标。
输出格式
输出一个整数,表示有多少个单位的面积被涂上颜色。
样例输入
2
1 1 4 4
2 3 6 5
样例输出
15
评测用例规模与约定
1<=n<=100,0<=横坐标、纵坐标<=100。
解题思路:
实现代码(java):

 1 package ccf_test2014_09;
 2
 3 import java.util.Scanner;
 4
 5 public class Draw {
 6
 7     private static int N;
 8
 9     public static void main(String[] args) {
10
11         boolean[][] flag = new boolean[101][101];
12
13         Scanner input = new Scanner(System.in);
14
15         N = input.nextInt();
16
17         input.nextLine();
18
19         int x1, y1, x2, y2;
20
21         for (int i = 0; i < N; i++) {
22
23             x1 = input.nextInt();
24
25             y1 = input.nextInt();
26
27             x2 = input.nextInt();
28
29             y2 = input.nextInt();
30
31
32             for (int p = x1; p < x2; p++) {
33
34                 for (int q = y1; q < y2; q++) {
35
36                     flag[p][q] = true;
37                 }
38             }
39             input.nextLine();
40
41         }
42         int ans = 0;
43
44         for (int i = 0; i <= 100; i++){
45
46             for (int k = 0; k <= 100; k++) {
47
48
49                 if (flag[i][k]){
50
51                     ans++;
52                 }
53             }
54         }
55
56         System.out.println(ans);
57
58     }
59 }

View Code

运行结果:
正确结果和错误结果的差异在于  input.nextLine();  的有无
实现代码(c++):

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 bool flag[107][107];
 4 int n;
 5 int x1,yy1,x2,y2;
 6 void slove()
 7 {
 8     for(int i=x1;i<x2;i++)
 9         for(int j=yy1;j<y2;j++)
10          flag[i][j]=1;
11 }
12 int main()
13 {
14  //     freopen("in.txt","r",stdin);
15     while(~scanf("%d",&n)){
16           memset(flag,0,sizeof(flag));
17        for(int i=0;i<n;i++)
18                 {
19                     scanf("%d%d%d%d",&x1,&yy1,&x2,&y2);
20                      slove();
21                 }
22             int ans=0;
23         for(int i=0;i<=100;i++)
24             for(int j=0;j<=100;j++)
25         {
26             if(flag[i][j]) ans++;
27         }
28         cout<<ans<<endl;
29     }
30     return 0;
31 }

View Code

运行结果:

转载于:https://www.cnblogs.com/haimishasha/p/5352144.html

CCF系列之画图(201409-2)相关推荐

  1. CCF认证2014-9-2 画图

    试题编号: 2014-9-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐 ...

  2. CCF系列题解--2015年12月第三题 ASCII字符画

    问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术.例如,下图是用 ASCII 字符画出来的 CSPRO 字样. ..____.____..____. ...

  3. 【CCF】201409-2 画图

    样例输入 2 1 1 4 4 2 3 6 5 样例输出 15 评测用例规模与约定 1<=n<=100,0<=横坐标.纵坐标<=100. 解题思路:用一个二维数组当作画板,刚开始 ...

  4. CCF系列题解--2018年3月第三题 URL映射

    问题描述 URL 映射是诸如 Django.Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件.对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 ...

  5. CCF系列题解--2015年3月第三题 节日

    问题描述 有一类节日的日期并不是固定的,而是以"a月的第b个星期c"的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日. 现在,给你a,b,c和y1, y2(1850 ≤ ...

  6. CCF系列题解--2017年12月第三题 Crontab

    样例输入 3 201711170032 201711222352 0 7 * * 1,3-5 get_up 30 23 * * Sat,Sun go_to_bed 15 12,18 * * * hav ...

  7. CCF系列题解--2015年12月第二题 棋类消除

    问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消 ...

  8. CCF系列题解--2016年9月第二题 火车购票

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  9. CCF系列题解--2016年9月第四题 交通规划

    问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路. ...

最新文章

  1. 如何用RNN生成莎士比亚风格的句子?(文末赠书)
  2. 【Android UI】TextView的垂直方向概念之top,bottom,ascent,descent,baseline
  3. 64位Ubuntu kylin 16.04搭建nfs网络文件系统
  4. Java当中Collections的用法
  5. java实现多对多关系的方法_Hibernate一对多关联双向关联代码实现分享
  6. hive实现根据用户分组,按用户记录求上下两条记录的时间差
  7. postgresql9.1_gaussdb200_解析表结构
  8. 前端:CSS/11/CSS浮动和清除,CSS继承性,CSS优先级
  9. torchtext处理文本数据——将文本变为embedding(学习三)
  10. java 屏幕键盘io
  11. IOCP扩展方法AcceptEx, DisconnectEx, GetAcceptExSockaddr用法示例
  12. Eclipse .class文件中文乱码
  13. promiseKit 解析 iOS
  14. spring源码解析专栏导航
  15. 3D人脸重建(一)综述
  16. gmail谷歌邮箱开启SMTP
  17. 微信小程序-各种跳转
  18. 德昂年会—北京站圆满落幕
  19. Photoshop CC 2019 软件安装教程
  20. 物联网卡和流量卡网速对比,看看谁更强?

热门文章

  1. python在企业有哪些应用_python2和python3在企业中应用有哪些
  2. opencv java 灰度_如何使用Java将图像转换为灰度?
  3. 数组对称_对称性应用在物理中的几个小例子
  4. Bqq服务器的缓存文件放什么目录,如何使文件系统缓存失效? - How to invalidate the file system cache? - 开发者知识库...
  5. python3操作mysql教程_python3操作mysql教程
  6. java n个点 凸多边形_hrbustoj 1291 点在凸多边形内
  7. Python,OpenCV中的霍夫圆变换——cv2.HoughCircles()
  8. 具有Python&OpenCV的本地二进制模式
  9. Anaconda:虚拟环境
  10. GitHub开源:一键生成前后端代码神器