poj 1656 Counting Black
来源:互联网 发布:ubuntu 安装 交换分区 编辑:程序博客网 时间:2024/04/25 12:33
Description
There is a board with 100 * 100 grids as shown below. The left-top gird is denoted as (1, 1) and the right-bottom grid is (100, 100).
We may apply three commands to the board:
In the beginning, all the grids on the board are white. We apply a series of commands to the board. Your task is to write a program to give the numbers of black grids within a required region when a TEST command is applied.
We may apply three commands to the board:
1.WHITE x, y, L // Paint a white square on the board, // the square is defined by left-top grid (x, y) // and right-bottom grid (x+L-1, y+L-1)2.BLACK x, y, L // Paint a black square on the board, // the square is defined by left-top grid (x, y) // and right-bottom grid (x+L-1, y+L-1)3.TEST x, y, L // Ask for the number of black grids // in the square (x, y)- (x+L-1, y+L-1)
In the beginning, all the grids on the board are white. We apply a series of commands to the board. Your task is to write a program to give the numbers of black grids within a required region when a TEST command is applied.
Input
The first line of the input is an integer t (1 <= t <= 100), representing the number of commands. In each of the following lines, there is a command. Assume all the commands are legal which means that they won't try to paint/test the grids outside the board.
Output
For each TEST command, print a line with the number of black grids in the required region.
http://poj.org/problem?id=1656
代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>int region[101][101] = {0};void paint(int x, int y, int l, int color){for(int i = x; i <= x + l - 1; i++)for(int j = y; j <= y + l - 1; j++)region[i][j] = color;}int getNum(int x, int y , int l){int num = 0;for(int i = x; i <= x + l - 1; i++)for(int j = y; j <= y + l - 1; j++)if(region[i][j] == 1)num++;return num;}int main(){int t,x,y,l;char com[6];scanf("%d",&t);while(t--){scanf("%s %d %d %d",com,&x,&y,&l);if(strcmp(com,"BLACK") == 0){paint(x,y,l,1);}else if(strcmp(com,"WHITE") == 0){paint(x,y,l,0);}else if(strcmp(com,"TEST") == 0){printf("%d\n",getNum(x,y,l));}}}
0 0
- POJ 1656 Counting Black
- poj 1656 Counting Black
- POJ 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- poj 1656 Counting Black
- POJ 1656 Counting Black
- Poj 1656 Counting Black
- poj 1656 Counting Black 水题
- POJ-1656-Counting Black- 四分树
- POJ 1656 Counting Black(水~)
- poj-1656-Counting Black-(树状数组)
- POJ-1565-Counting Black
- PKU 1656 Counting black
- 1656:Counting Black
- POJ-1656 Counting Black (二维树状数组 入门题)
- Android设置RadioButton在文字的右边
- LoadRunner设置检查点的几种方法介绍
- BUPT Summer Journey #test7 E
- 64位Linux上编译32位软件
- 清除浮动的方法
- poj 1656 Counting Black
- mantle相关,待研究
- android setTag (int key, Object tag)抛出IllegalArgumentException的问题
- 习近平名字在党媒出现次数稍逊毛泽东
- hdu 1079 Calendar Game 博弈(组合游戏) sg函数
- MRTG—网络监控工具
- 自己动手写CPU之第五阶段(1)——流水线数据相关问题
- varchar PK text
- LoadRunner如何监控Linux下的系统资源