UVA 297 - Quadtrees
2014-09-29 15:34
381 查看
题目大意: 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; }
相关文章推荐
- UVA 297 Quadtrees(四叉树建树、合并与遍历)
- Uva297 Quadtrees【递归建四分树】【例题6-11】
- uva 297 quadtrees——yhx
- Quadtrees UVA - 297
- UVA 297 Quadtrees (4叉树)
- UVA-297 Quadtrees (四分树)
- Uva - 297 - Quadtrees
- UVa 297 (四分树 递归) Quadtrees
- UVA297 Quadtrees(递归!!!)
- UVA 297 Quadtrees
- uva297 Quadtrees (树的重建)
- UVa 297 Quadtrees(模拟&四分树)
- UVA 297 Quadtrees(四叉树建树、合并与遍历)
- Uva - 297 - Quadtrees
- 例题6-11 UVa297 Quadtrees(四分树)
- UVA 297 Quadtrees( 数据结构,树)
- UVa 297 Quadtrees -SilverN
- Uva-297 - Quadtrees(四分树与结构体指针)
- UVa 297 Quadtrees -SilverN
- UVA - 297:Quadtrees