poj 1656 Counting Black
這個本來應該是不水的,估計題意原來是讓用線段樹或者樹狀數組做的,但是,題目裏的數據規模太小了,直接模擬就過了。。也就成超級水題了。
#include <stdio.h>
#include <string.h>
int map[103][103]; //在外部定義自動初始化為0
int main()
{
int n;
scanf("%d",&n);
char input[10]; //黑、白、測試
int x,y,L; //邊界界定值
int i,j;
int count; //黑色方塊的計算器
while(n--)
{
scanf("%s",input);
scanf("%d%d%d",&x,&y,&L);
//printf("輸出:%s %d %d %d\n\n",input,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)
if(strcmp(input,"BLACK")==0)
{
for(i=x;i<=x+L-1;i++)
for(j=y;j<=y+L-1;j++)
map[i][j]=1;
}
if(strcmp(input,"WHITE")==0)
{
for(i=x;i<=x+L-1;i++)
for(j=y;j<=y+L-1;j++)
map[i][j]=0;
}
// Ask for the number of black grids
// in the square (x, y)- (x+L-1, y+L-1)
count=0;
if(strcmp(input,"TEST")==0)
{
for(i=x;i<=x+L-1;i++)
for(j=y;j<=y+L-1;j++)
{
if(map[i][j]==1)
count++;
}
printf("%d\n",count);
}
}
return 0;
}
最後更新:2017-04-03 14:53:41