poj 1656 Counting Black
来源:互联网 发布:unity3d 我要自学网 编辑:程序博客网 时间:2024/03/29 03:06
Counting Black
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 10360 Accepted: 6691
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.
Sample Input
5BLACK 1 1 2BLACK 2 2 2TEST 1 1 3WHITE 2 1 1TEST 1 1 3
Sample Output
76
题意:
对于一个100*100棋盘,进行下列三种操作
BLACK x y l 将(x,y)为左上角,边长为l的正方形涂黑
WHITE x y l 将(x,y)为左上角,边长为l的正方形涂白
TEST x y l 问(x,y)为左上角,边长为l的正方形有多少个黑色格子
参考代码:
#include <iostream>#include <string.h>using namespace std;#define MAX 100int main(){int map[MAX][MAX];int t,x,y,l;char s[20];while (cin>>t){memset(map,0,sizeof(map));while (t--){cin>>s>>x>>y>>l;if (strcmp(s,"BLACK")==0){for (int i=x;i<x+l;i++){for (int j=y;j<y+l;j++){map[i][j]=1;}}}if (strcmp(s,"WHITE")==0){for (int i=x;i<x+l;i++){for (int j=y;j<y+l;j++){map[i][j]=2;}}}if (strcmp(s,"TEST")==0){int count=0;for (int i=x;i<x+l;i++){for (int j=y;j<y+l;j++){if (map[i][j]==1)count++;}}cout<<count<<endl;}}}return 0;}
每天水一发~
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 (二维树状数组 入门题)
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 又一次聊 GOTO 是不好的。
- 世界地图
- Linux配置和管理msyql命令
- IOException while loading persisted sessions: java.io.EOFException异常的解决办
- poj 1656 Counting Black
- 阅读《编写高质量代码》心得(2)
- ios UITextField缩进文本
- C语言模拟试题5
- 最小软件开发团队探索随笔2014
- JavaScript与Node.js
- 浅尝boost之format
- 输入和输出--IO流
- DIV+CSS 页面布局