UVA 297 - Quadtrees

来源:互联网 发布:免费手机视频制作软件 编辑:程序博客网 时间:2024/06/11 19:55

题目大意: 32*32像素的正方形图片,每个像素非黑即白 , 用4叉树表示,’p‘代表当前块类颜色不纯,'f'代表纯黑,‘e’代表纯白

#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int size = 1024;const int str_size = 10000;char a[size] , b[size];char str1[str_size] , str2[str_size];void build(char *start , char *finish , char *v , int x , int y){if(start >= finish) return;if(*start == 'f') memset(v + x , 1 , (y-x));else if(*start == 'e') memset(v + x , 0 , (y-x));else{char *pre = start + 1;char *cur = start + 1;for(int i = 0 ; i < 4 ; ++i){int p = 1 , q = 0;while(p  > q){if(*cur == 'p') p += 3;else ++q;++cur;}build(pre , cur , v , x + i * (y-x) / 4  , x + (i+1) * (y-x) / 4);pre = cur;}}}int main(){int n;cin >> n;for(int i = 0 ; i < n ; ++i){cin >> str1 >> str2;int len1 = strlen(str1);int len2 = strlen(str2);build(str1 , str1 + len1 , a , 0 , 1024);build(str2 , str2 + len2 , b , 0 , 1024);int cnt = 0;for(int i = 0 ; i < 1024 ; ++i){if(a[i] || b[i]) ++cnt;}cout << "There are " << cnt << " black pixels." << endl;}return 0;}


0 0
原创粉丝点击