Quadtrees UVA - 297
题目链接:https://vjudge.net/problem/UVA-297
题目大意:如上图所示,可以用一个四分树来表示一个黑白图像,方法是用根节点表示整副图像,然后把行列各等分两等分,按照图中的方式进行编号,从左到右对应4个结点
如果某子结点对应的区域全为黑或白,则直接用一个黑结点或者白结点表示:如果既有黑油油白 则用一个灰结点表示 并且为这个区域递归建树。
给出两颗树的现需遍历,求二者合并之后(黑色部分合并)黑色像素的个数。p表示中间结点,f表示黑色 e表示白色
思路:首先一定要把题意读懂。 首先给你一幅图,这幅图的像素的是1024 是正方形区域 你可以看做是32*32的区域 每个块可以看做1 2 3 4个块
问你两棵树合并之后有多少个黑色像素的点。
具体怎么做呢 ? 只要我们能编写一个“画出来”的过程 边画边统计即可!
如果碰到的是p 那么接着画新的区域。 我们可以用一个数组来存储改点是否是黑色 刚开始区域是32*32的大小 我们可以看做起点是(0,0)终点是(31,31)的1024个点
四个区域正如题目要求的一样 一直遍历下去就行了
看代码:
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; const int len=32; const int maxn=1024+10; char s[maxn]; int buf[len][len],cnt; /* 把字符串s[p...]导出到以(r,c)为左上角,边长为w的缓冲区内 */ //draw(s,p,0,0,len); void draw(const char* s,int& p,int r,int c,int w) {char ch=s[p++];if(ch=='p'){draw(s,p,r,c+w/2,w/2);//1draw(s,p,r,c,w/2);//2draw(s,p,r+w/2,c,w/2);//3draw(s,p,r+w/2,c+w/2,w/2);//4 }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;cin>>t;while(t--){memset(buf,0,sizeof(buf));cnt=0;for(int i=0;i<2;i++){cin>>s;int p=0;draw(s,p,0,0,len);}printf("There are %d black pixels.\n",cnt);}return 0; }
转载于:https://www.cnblogs.com/caijiaming/p/10352762.html
Quadtrees UVA - 297相关推荐
- 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)
立志用最少的代码做最高效的表达 A quadtree is a representation format used to encode images. The fundamental idea be ...
- UVa 297 - Quadtrees 四叉树, 及其在编码图像的应用
297 - Quadtrees 4898 41.55% 1811 90.39% 题目链接: http://uva.onlinejudge.org/index.php?option=com_online ...
- UVa 297 - Quadtrees
题目:利用四叉树处理图片,给你两张黑白图片的四叉树,问两张图片叠加后黑色的面积. 分析:搜索.数据结构.把图片分成1024块1*1的小正方形,建立一位数组记录对应小正方形的颜色. 利用递归根据字符串, ...
- UVA 297 Quadtrees
UVA_297 由于这个题目可以看成是完全四叉树,所以借用了一下线段树的思想,把题目转化成了对区间进行两次染色,然后求最后色块的个数. 当然我的程序写得复杂了,lazy可以不用的,在统计的时候遇到黑色 ...
- UVa 297 四分树
感觉特别像那个分治的日程表问题.是f的话就填,否则就不填,然后同一个表填两次.那么就是最后的结果. 1 #include <iostream> 2 #include <cstring ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- Uniform Grid Quadtree kd树 Bounding Volume Hierarchy R树 搜索
Region 資料結構 : Uniform Grid 楔子 請你嘗試發掘,這一系列的資料結構是為了解決什麼問題呢? Uniform Grid 嗯,就是方格紙.將整個世界劃分為等寬方格. 實作方式是一 ...
- 初学者acm的练习题指南
上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1. <!--[endif]-->Programming Bas ...
- 算法竞赛入门竞赛 入门经典 第六章 个人记录
UVa 210 并行程序模拟(放弃 || 待补) 没看懂题意,但是有百度了一下duque 算是对duque有了一个大致的认识和了解 当然也有尝试. 本来想着去hdu找一些duque的题 结果 好像可以 ...
最新文章
- python和java一样吗-Java与Python到底有什么区别和共同点详细对比
- flex与java实现增删改查
- boost::hana::make_pair用法的测试程序
- [BUUCTF-pwn]——[BJDCTF 2nd]rci
- .NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记
- npm i依赖版本兼容问题处理
- B端——复杂业务表单设计
- View绘制--onMeasure() 、onLayout()
- 【京东科技】视觉基础研究部研究型实习生招聘
- svn图文教程-宋正河整理
- 解决:AttributeError: ‘str‘ object has no attribute ‘decode‘
- 新浪短链接:15款最佳t.cn短网址在线生成工具
- 德莱联盟(判断线段是否相交)
- 为什么走线选择50欧姆阻抗
- 网络文件存储系统(三)fastdfs分布式文件系统实战
- Windbg串口联调
- 哔哩哔哩 声音太小,怎么调大?
- html5 indexeddb,关于使用HTML5提供的indexedDB的一下心得
- 编程进阶:Java小白的序列化Serializable接口
- smart原则_高效能宝宝养成记之七 SMART原则:梦想与空想只隔一个目标的距离
热门文章
- CALayer 简单的使用
- 移动端点击a链接出现蓝色背景问题解决
- 解决dom4j加载xml文件性能慢的问题
- 解决VMware虚拟机网络时长中断的问题
- 【实践】美团外卖广告智能算力的探索与实践
- 【白皮书分享】人工智能“新基建”发展白皮书.pdf(附下载链接)
- 【专访】首届腾讯社交广告“高校算法大赛”落幕 冠亚季军团队参赛心得精彩分享
- 局域网通讯工具_五大核心开启工业通讯创新之门——西门子工业网络专家计划打造最强行业生态...
- python支付宝自动支付_python-支付宝支付示例
- 2019年的流水账和总结