uva297

题意:

一个四叉树用来格式编码图像,这个想法的基础是任意的图像能够分成四个象限.每个象限能够拆分成四个子象限,
比如,在四叉树中,每一个图像都被一个父节点表示,根据预先定义好的顺序,四个孩子节点代表四个象限.

当然,如果整个图像只有一个颜色,这个图像的四叉树形式只有一个节点.通常,如果一个象限由不同的颜色组成,这个象限需要再次被拆分,
因此,四叉树不必有均匀的深度.
现代电脑图像工作基础是32x32单元格的黑白图,所以一个图像有1024个像素点.为了形成一个新的图像,一个操作是把俩个图像加在一起。
如果俩个像素点中有一个是黑色,那么相加后的像素点是黑色,要不然就是白色.

This particular artist believes in what he calls the preferred fullness:
为了让一个图像变得有趣(比如卖更多的钱)的最重要的属性是被填满黑色像素点的数目.
所以在让俩个图像相加前,他想知道在相加后的图像中有多少个黑色的像素点.
你的任务是写一个程序,给一颗代表俩个图形的四叉树,计算相加后结果图像中黑色的像素点的数目,

比如下面的计算,第一个样例从上到下展示了一个图像,四叉树,先序遍历字符串形式,像素点数目,
象限编号在最上方显示。
————
| 2|1 |
| 3|4 |
————
图形
四叉树形式
字符串形式
四个象限总共1024个点,比如第一象限占的点数是1024/4=256,样例中一个最小黑方块占的点数是256/4=64

输入:
第一行包含测试用例总数(N)
每一组测试用例包含俩个字符串,每个字符串一行,字符串是四叉树的先序遍历结果
字符p代表父节点,f代表象限全是黑色,e代表全是白色,保证每个字符串的是合法的四叉树,
树的深度不会超过5(因为这样像素的只有一个颜色)
1024
/
256
/
64
/
16
/
4
/
1

时间: 2024-09-09 08:38:54

uva297的相关文章

树--四分树(UVa297)

郑重声明: 数据结构这部分内容, 由于博主才学很少(且很浅)的内容, 所以现在所写的(大都是抄的)一些典型例题, 再加上一些自己想法和理解而已, 等博主勤加修炼, 以后会大有补充和改进. 粗浅之处, 还望大牛们哈哈一笑! UVa297 - Quadtrees Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=104&page=

uva297(quadtree)

给我们两棵quadtree的前序遍历,要我吗求原来32*32的矩阵有多少个位置是黑的 quardtree是将区域划分为相等的4个子空间,然后再递归划分这4个子空间,知道满足条件后终止划分 这题的终止条件是遇到黑色或者白色的结点停止递归 至于为什么一个前序遍历就能建树,是因为结点颜色的缘故,所以能够知道何时递归返回.所以能够建立一课树 都没什么空敲java代码,反正C++语法都很熟悉了,就用java刷题吧,刷题,学java两不误 1 import java.util.Scanner; 2 3 4

[data structrue][区间操作][水题]uva297 Quadtrees

这题除了白书上的代码,自己YY了一种类似线段数区间操作的方法,一个结点4个孩子, 结点k,四个孩子编号分别为4*k+1,4*k+2,4*k+3,4*K+4,从零开始 读取的时候直接递归,所以代码也比较简洁. /*jerryRey 转载请注明出处,谢谢 http://www.cnblogs.com/jerryRey/ */ #include<cstdio> #include<cstring> const int maxn = 1365 + 5;//4^5 + 4^4 + ... +

UVA297:Quadtrees(四分树)

题目描述 四象树是每个内结点均有4个子结点的特殊四叉树,它可用于描述平面上黑白图像.平面上的黑白图像是32行×32列的正方形,每个格子称为1个象素,是最小的图像单位.正方形图像可分成四个相等的小正方形,可按直角坐标系四个象限的顺序分别编号1,2,3,4,分别对应于四象树的四个子结点.这样,32行×32列的图像就对应于一棵深度为6的完全四叉树,最底层的每个叶结点正好对应于一个象素.但我们可以压缩四象树的结点数量. 当图像上某个区域为全白或者全黑时,可把该区域在四象树上对应的结点描述为全白(用小写字

UVA806-Spatial Structures(四分树)

Problem UVA806-Spatial Structures Accept:329  Submit:2778 Time Limit: 3000 mSec Problem Description  Input The input contains one or more images. Each image is square, and the data for an image starts with an integer n, where |n| is the length of a s

四分树 (Quadtrees UVA - 297)

题目描述: 原题:https://vjudge.net/problem/UVA-297 题目思路: 1.依旧是一波DFS建树 //矩阵实现 2.建树过程用1.0来填充表示像素 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 5 const int maxn = 1024 + 5; 6 const int len = 32 ; 7 int tree[len][len],pcount; 8 char