https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=233

参考了刘汝佳的算法,写得太妙了。

因为最多是1024块,所以每行每列最多是32,利用先序遍历,一旦是'p'时,就访问第1块,如果第一块内还有细分,则继续递归下去。然后继续依次访问第2,3,4块空间。

 #include<iostream>
#include<cstring>
using namespace std; const int len = ;
const int maxn = + ;
char s[maxn];
char buf[maxn][maxn];
int number; void solve(char *s, int &p,int r,int c,int w)
{
char q = s[p++];
if (q == 'p')
{
solve(s, p, r, c + w / , w / );
solve(s, p, r, c, w / );
solve(s, p, r + w / , c, w / );
solve(s, p, r + w / , c + w / , w / );
}
else if (q=='f')
for (int i = r; i < r + w;i++)
for (int j = c; j < c + w;j++)
if (buf[i][j] == )
{
buf[i][j] = ;
number++;
}
} int main()
{
int t;
cin >> t;
while (t--)
{
memset(buf, , sizeof(buf));
number = ;
cin >> s;
int p = ;
solve(s,p,,,len);
cin >> s;
p = ;
solve(s,p,,,len);
cout << "There are " << number << " black pixels." << endl;
}
return ;
}

UVa 四叉树的更多相关文章

  1. UVA 297 Quadtrees(四叉树建树、合并与遍历)

    <span style="font-size: 18pt; font-family: Arial, Helvetica, sans-serif; background-color: r ...

  2. 【紫书】Quadtrees UVA - 297 四叉树涂色

    题意:前序遍历给出两个像素方块.求两个方块叠加后有几个黑色格子. 题解:每次读进来一个方块,就在二维数组上涂色.每次把白色涂黑就cnt++: 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往 ...

  3. 地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了

    地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了 四叉树对于区域查询,效率比较高. 原理图

  4. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  5. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  6. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  7. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  8. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

  9. UVA数学入门训练Round1[6]

    UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...

随机推荐

  1. 《BI项目笔记》SSAS部署时发生的问题——元数据管理器中存在错误 解决办法

    在生成和部署期间出错.是否继续?解决办法: 用Microsoft SQL Server Management Studio 连接Analysis Services 然后删除多维数据库,重新布署.这样就 ...

  2. KO Demo

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. idea 工程添加svn关联

    1.想启用idea的SVN插件还需要在idea配置一下(Ctrl + Alt + S),如下图所示: 2.接下来启用idea的版本控制插件(这里当然是启用Subversion了),打开“VCS”菜单项 ...

  4. Delphi TDatabase 组件

    TDatabase 组件是一个能与远程数据库通过 BDE 建立连接的组件,可使本地端的程序获取远程的数据. 通过 TDatabase 组件的使用,可以减少与远程数据库连接的窗口,当远程数据库的设置变动 ...

  5. Java后台传前台json数组

    function checkStore(){ var flag=1; $.ajax({ url:"widget?type=shop_cart&ajax=yes&action= ...

  6. ERWin 7.2下载安装及注册机

    ERWin 7.2下载安装及注册机   ERWin 7.2 下载地址: ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM72-b1644.exe ...

  7. Android BaseAdapter 数据和显示之间的Adapter 接口

    http://www.cnblogs.com/mandroid/archive/2011/04/05/2005525.html

  8. PDF 补丁丁 0.4.3.1342 测试版发布:修复崩溃问题

    PDF 补丁丁 0.4.3.1342 测试版发布了. 此测试版修复了之前测试版在合并文件.书签编辑器.文档结构探查器中出现的崩溃问题. 推荐下载了0.4.3测试版的网友尽快更新.

  9. NetworkComms V3 之发送UDP广播消息

    NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的U ...

  10. 把字典的key value 拼接成字符串加上签名加密

    - (NSString *)getSianKeyWithDic:(NSDictionary *)dic { //按字典排序 NSArray* arr = [dic allKeys]; arr = [a ...