UVa 297 Quadtrees 递归

来源:互联网 发布:怎么修改apk软件 编辑:程序博客网 时间:2024/05/19 22:05






#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int maxn = 1024;const int len = 32;char s[maxn + 10];int buf[len + 5][len + 5], cnt;void draw(const char *a, int& p, int r, int c, int w) {char ch = a[p++];if (ch == 'p') {draw(a, p, r, c + w / 2, w / 2);draw(a, p, r, c, w / 2);draw(a, p, r + w / 2, c, w / 2);draw(a, p, r + w / 2, c + w / 2, w / 2);}else if (ch == 'f') {for (int i = r; i < r + w; i++) {for (int j = c; j < c + w; j++) {if (buf[i][j] == 0) {buf[i][j] = 1;cnt++;}}}}}int main(){int T;scanf("%d", &T);while (T--) {cnt = 0;memset(buf, 0, sizeof(buf)); //debug initfor (int i = 1; i <= 2; i++) {scanf("%s", s);int p = 0;draw(s, p, 0, 0, len);}printf("There are %d black pixels.\n", cnt);}return 0;}






0 0