[2013 Final] Colors
Description
Ziyao has a big drawing board with N * M squares. At the beginning, all the squares on the board are white, represented by the number 0. We can see the 4 * 4 whilte drawing board is:
0000
0000
0000
0000
One day Ziyao wants to draw on the board. He will draw for T times. Each time he will draw a rectangle with the color he like.For each rectangle, we use 4 integers (x1, y1, x2, y2) to express it. It means all squares whose coordinate (x, y) exist both x1 <= x <=x2 and y1 <= y <= y2. If two rectangles are intersected, the intersected part will be covered by the color later drawing.
For example, if he draw a rectangle (1, 2, 3, 3) on the white board with the color ‘1’, the board will be:
0110
0110
0110
0000
And if he go on drawing a rectangle (2, 1, 3, 2) by ‘2’, the board will be:
0110
2210
2210
0000
Now, Ziyao Big God will tell you his drawing process, please tell me how many colors will be there on the board.
Input
The first line has 3 integers, N, M, T.(0 < N, M <= 100, 0 <= T <=20)
The next T lines, each line has 5 integers x1, y1, x2, y2, c, (x1, y1, x2, y2) express the rectangle and c is the color.(1 <= x1, x2 <= N, 1 <= y1, y2 <=M, 1 <= c <= T)
Output
Just one number, how many colors on the board.
PS:’0’ is also a kind of color.
Sample Input 1
4 4 2
1 2 2 3 1
2 1 3 2 2
Sample Input 2
4 4 2
1 1 1 1 2
1 1 4 4 1
Sample Output 1
3
Sample Output 2
1
Hint
For the first sample, the board is
0110
2210
2200
0000
There are 3 colors:0,1,2.
For the second sample, the board is
1111
1111
1111
1111
There are only 1 color: 1.
这道题的话还好,主要注意的是题目的第一行或者列是数组下标为0的时候,这里要注意,还有就是怎么算出总共的颜色有多少种,我是另外开个数组,然后有数字的就做上标记
我的
#include<stdio.h>
int a[100][100] = {0};
int main() {
int n, m, t;
int b[200] = {0};
int x1, y1, x2, y2, c, sum = 0, flag = 0;
scanf("%d %d %d", &n, &m, &t);
while (t--) {
scanf("%d %d %d %d %d", &x1, &y1,&x2, &y2, &c);
x1 -= 1;
x2 -= 1;
y1 -= 1;
y2 -= 1;
for (int i = x1; i <= x2; i++) {
for (int j = y1; j <= y2; j++) {
a[i][j] = c;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int temp = a[i][j];
b[temp]++; }
}
for (int i = 0; i < 200; i++) {
if (b[i] != 0)
sum++;
}
printf("%d", sum);
return 0;
}
标程(思想差不多)
1.#include <stdio.h>
2.int n, m, t, a[100][100], i, j, ans;
3.int main() {
4. int x1, y1, x2, y2, c, colors[21];
5. scanf("%d%d%d", &n, &m, &t);
6. for (i = 0; i < n; i++)
7. for (j = 0; j < n; j++) a[i][j] = 0;
8. while (t--) {
9. scanf("%d%d%d%d%d", &x1, &y1, &x2, &y2, &c);
10. for (i = x1; i <= x2; i++)
11. for (j = y1; j <= y2; j++)
12. a[i - 1][j - 1] = c;
13. }
14. for (i = 0; i <= 20; i++) colors[i] = 0;
15. for (i = 0; i < n; i++)
16. for (j = 0; j < m; j++)
17. colors[a[i][j]] = 1;\\原来是可以这样的
18. ans = 0;
19. for (i = 0; i <= 20; i++) ans += colors[i];
20. printf("%d", ans);
21. return 0;
22.}
[2013 Final] Colors的更多相关文章
- Amazon Hiring Campus 2013 - Final 6
Let's assume that there is a simple market for beans. Every day there is a published bean price in t ...
- LOJ#2764. 「JOI 2013 Final」JOIOI 塔
题目地址 https://loj.ac/problem/2764 题解 真的想不到二分...不看tag的话... 考虑二分答案转化为判定问题,那么问题就变成了能不能组合出x个JOI/IOI,考虑贪心判 ...
- javascript继承笔记
//原型(prototype):原型是一个对象,其他对象可以通过它实现属性继承 /*笔记: * 1.类式继承:通过原型链继承的方式 * 2.原型式继承:对类式继承的封装 * 3.寄生式继承:对原型继承 ...
- JavaScript原型链和继承
1.概念 JavaScript并不提供一个class的实现,在ES6中提供class关键字,但是这个只是一个语法糖,JavaScript仍然是基于原型的.JavaScript只有一种结构:对象.每个对 ...
- 阅读《JavaScript设计模式》第二章心得
面向对象编程 面向对象编程就是将你的需求抽象成一个对象.然后针对这个对象分析其特征(属性)与动作(方法).这个对象我们称之为类.面向对象编程思想其中的一个特点就是封装. 1.私有属性.私有方法.特权方 ...
- 「题解」:[loj2763][JOI2013]现代豪宅
问题 A: 现代豪宅 时间限制: 1 Sec 内存限制: 256 MB 题面 题目描述 (题目译自 $JOI 2013 Final T3$「現代的な屋敷」) 你在某个很大的豪宅里迷路了.这个豪宅由东 ...
- 「CSP-S模拟赛」2019第三场
目录 T1 「POI2007」山峰和山谷 Ridges and Valleys 题目 考场思路(几近正解) 正解 T2 「JOI 2013 Final」 现代豪宅 题目 考场思路(正解) T3 「SC ...
- Integrating SharePoint 2013 with ADFS and Shibboleth
Time again to attempt to implement that exciting technology, Federation Services (Web Single Sign On ...
- [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图
[.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...
随机推荐
- Soket编程
基本概念 lIP地址 每台联网的电脑都有一个唯一的IP地址. 长度32位,分为四段,每段8位,用十进制数字表示,每段范围 0 ~ 255 特殊IP:127.0.0.1 用户本地网卡测试 版本:V4(3 ...
- oracle中的timestamp字段的值乱码问题修改
我的解决方案: 直接新增一个系统变量: key值为:NLS_TIMESTAMP_FORMATvalue的值为:YYYY-MM-DD HH24:MI:SSFF6 其它解决方案: 在登录PLSQL之后,查 ...
- VBS操作剪切板
'设置剪切板的内容 Dim Form, TextBox Set Form = CreateObject("Forms.Form.1") Set TextBox = Form.Con ...
- The first day!!!
我的小院子开通啦,开始记录自己的学习历程,加油!!!
- FizzlerEx —— 另一个HtmlAgilityPack的CSS选择器扩展,
之前我介绍过HtmlAgilityPack的CSS选择器扩展——ScrapySharp,它可以非常方便的实现通过CSS选择器表达式来查询HtmlNode.今天在使用的过程中,发现它不支持nth-chi ...
- (转)javascript中的对象查找
本文转自:http://otakustay.com/object-lookup-in-javascript/ ---很棒的一篇文章,作者的其他文章还暂时没读,但相信作者是一个谦虚 谨慎的好工程师 近 ...
- python生成中文验证码,带旋转,带干扰噪音线段
# -*- coding: utf-8 -*- """ Created on Sun Oct 4 15:57:46 2015 @author: keithguofan & ...
- {Links}{Matting}{Saliency Detection}{Superpixel}Source links
自然图像抠图/视频抠像技术发展情况梳理(image matting, alpha matting, video matting)--计算机视觉专题1 http://blog.csdn.net/ansh ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放 license收费等 ...
- SQL语句调优 - 统计信息的含义与作用及维护计算
统计信息的含义与作用 ...