uva297】的更多相关文章

郑重声明: 数据结构这部分内容, 由于博主才学很少(且很浅)的内容, 所以现在所写的(大都是抄的)一些典型例题, 再加上一些自己想法和理解而已, 等博主勤加修炼, 以后会大有补充和改进. 粗浅之处, 还望大牛们哈哈一笑! UVa297 - Quadtrees Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=104&page=…
// UVa297 Quadtrees // 题意:给两棵四分树的先序遍历,求二者合并之后(黑色部分合并)黑色像素的个数.p表示中间结点,f表示黑色(full),e表示白色(empty) // 算法:先建树,然后统计   #include<cstdio> #include<cstring> #include<iostream> #include<string> #include<algorithm> using namespace std; +;…
题目链接: https://www.luogu.org/problemnew/show/UVA297 附几道推荐题目(先完成再食用此题效果更佳) https://www.luogu.org/problemnew/show/UVA122 https://www.luogu.org/problemnew/show/UVA699 https://www.luogu.org/problemnew/show/UVA839 分析: 本题为树上的递归题目.我们可以在一个子函数search中完成: void s…
给我们两棵quadtree的前序遍历,要我吗求原来32*32的矩阵有多少个位置是黑的 quardtree是将区域划分为相等的4个子空间,然后再递归划分这4个子空间,知道满足条件后终止划分 这题的终止条件是遇到黑色或者白色的结点停止递归 至于为什么一个前序遍历就能建树,是因为结点颜色的缘故,所以能够知道何时递归返回.所以能够建立一课树 都没什么空敲java代码,反正C++语法都很熟悉了,就用java刷题吧,刷题,学java两不误 import java.util.Scanner; public c…
白书 例题6-11 用四分树来表示一个黑白图像:最大的图为根,然后按照图中的方式编号,从左到右对应4个子结点.如果某子结点对应的区域全黑或者全白,则直接用一个黑结点或者白结点表示:如果既有黑又有白,则用一个灰结点表示,并且为这个区域递归建树. 思路 用一个buffer表示黑白表格,利用递归建树,每当遇见p(灰色)就往下递归四个节点,遇到f(黑色)就把buf[][]对应的位置设为1 cuf++,找对应的位置是个难点.需要遍历(r,r+w)(c,c+w)r,c是buf的下标,从左上角开始,w是格子的…
题意: 一个四叉树用来格式编码图像,这个想法的基础是任意的图像能够分成四个象限.每个象限能够拆分成四个子象限,比如,在四叉树中,每一个图像都被一个父节点表示,根据预先定义好的顺序,四个孩子节点代表四个象限. 当然,如果整个图像只有一个颜色,这个图像的四叉树形式只有一个节点.通常,如果一个象限由不同的颜色组成,这个象限需要再次被拆分,因此,四叉树不必有均匀的深度.现代电脑图像工作基础是32x32单元格的黑白图,所以一个图像有1024个像素点.为了形成一个新的图像,一个操作是把俩个图像加在一起.如果…
借鉴了线段数区间操作的思想,只是把一个结点的孩子扩展到了4个, 结点k,四个孩子编号分别为4*k+1,4*k+2,4*k+3,4*K+4,从零开始. 根据层数,确定权值. #include<cstdio> #include<cstring> + ;//4^5 + 4^4 + ... + 1 char s[maxn]; int tr[maxn]; int p; void add(int o) { char ch = s[p++];// if(ch == 'p'&&!t…
题目描述 四象树是每个内结点均有4个子结点的特殊四叉树,它可用于描述平面上黑白图像.平面上的黑白图像是32行×32列的正方形,每个格子称为1个象素,是最小的图像单位.正方形图像可分成四个相等的小正方形,可按直角坐标系四个象限的顺序分别编号1,2,3,4,分别对应于四象树的四个子结点.这样,32行×32列的图像就对应于一棵深度为6的完全四叉树,最底层的每个叶结点正好对应于一个象素.但我们可以压缩四象树的结点数量. 当图像上某个区域为全白或者全黑时,可把该区域在四象树上对应的结点描述为全白(用小写字…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 发现根本不用存节点信息. 遇到了叶子节点且为黑色,就直接覆盖矩阵就好(因为是并集); [代码] #include <bits/stdc++.h> using namespace std; const int N = (1 << 5) + 10; string s; int pos, bo[N][N]; void fugai(int x1, int y1, int x2, int y2) { for (int i =…
一幅图有1024个点, 可以对图平均分成4块, 并且子图也可以再往下分, 直到一个子图表示一个点. f表示这块子图填满, p表示它还有4个子图, e表示没有子图(当然啦, 它也没有填满). 给定两个字符串(其实就是两幅图, 两棵树), 求把两图合并后的图的黑点数. Example Input:3ppeeefpffeefepefepeefepeeefpeefepeeefpeepefefe Example Output:There are 640 black pixels.There are 512…