📄 1463.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1463 on 2006-01-12 at 04:23:43 */
#include <cstdio>
#include <cstring>
const int MAX = 512;
int board[MAX][MAX/8];
void read(int, int, int, int);
int main()
{
int i, j, n;
while(scanf("%d", &n) != EOF) {
int m = n / 8; getchar();
memset(board, 0, sizeof(board));
read(0, 0, n-1, n-1);
printf("#define quadtree_width %d\n", n);
printf("#define quadtree_height %d\n", n);
printf("static char quadtree_bits[] = {\n");
for(i = 0; i < n; i++) {
for(j = 0; j < m; j++) printf("0x%02x,", board[i][j]);
putchar('\n');
}
printf("};\n");
}
return 0;
}
void read(int x1, int y1, int x2, int y2)
{
char ch = getchar();
if(ch == 'Q') {
int mx = (x1 + x2) / 2, my = (y1 + y2) / 2;
read(x1, y1, mx, my); read(x1, my+1, mx, y2);
read(mx+1, y1, x2, my); read(mx+1, my+1, x2, y2);
} else if(ch == 'B') {
int i, j;
for(i = x1; i <= x2; i++)
for(j = y1; j <= y2; j++)
board[i][j>>3] |= (1<<(j&7));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -