UVA_297

由于这个题目可以看成是完全四叉树,所以借用了一下线段树的思想,把题目转化成了对区间进行两次染色,然后求最后色块的个数。

当然我的程序写得复杂了,lazy可以不用的,在统计的时候遇到黑色节点就返回即可,只不过这样计数的方式就要稍加变化了。

#include<stdio.h>#include<string.h>#define MAXD 4000int tree[MAXD], lazy[MAXD], cur, M, res;char b[1500];void down(int t){if(lazy[t] == 1)    {        tree[t] = 1, lazy[t] = 0;if(t < M)            lazy[4 * t - 2] = lazy[4 * t - 1] = lazy[4 * t] = lazy[4 * t + 1] = 1;    }}void build(int t){int i;    down(t);if(b[cur] == 'f')    {        lazy[t] = 1;        cur ++;    }else if(b[cur] == 'e')        cur ++;else    {        cur ++;for(i = -2 ; i <= 1; i ++)            build(4 * t + i);    }}void dfs(int t){int i;    down(t);if(t >= M)    {if(tree[t])            res ++;    }else    {for(i = -2; i <= 1; i ++)            dfs(4 * t + i);    }}void solve(){int i, j;for(i = 1, M = 1; i <= 5; i ++, M = (M << 2) - 2);    memset(tree, 0, sizeof(tree));    memset(lazy, 0, sizeof(lazy));    gets(b);    cur = 0;    build(1);    gets(b);    cur = 0;    build(1);    res = 0;    dfs(1);    printf("There are %d black pixels.\n", res);}int main(){int t;    gets(b);    sscanf(b, "%d", &t);while(t --)    {        solve();    }return 0;}

转载于:https://www.cnblogs.com/staginner/archive/2011/12/27/2303990.html

UVA 297 Quadtrees相关推荐

  1. UVa 297 - Quadtrees 四叉树, 及其在编码图像的应用

    297 - Quadtrees 4898 41.55% 1811 90.39% 题目链接: http://uva.onlinejudge.org/index.php?option=com_online ...

  2. UVa 297 - Quadtrees

    题目:利用四叉树处理图片,给你两张黑白图片的四叉树,问两张图片叠加后黑色的面积. 分析:搜索.数据结构.把图片分成1024块1*1的小正方形,建立一位数组记录对应小正方形的颜色. 利用递归根据字符串, ...

  3. 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)

    立志用最少的代码做最高效的表达 A quadtree is a representation format used to encode images. The fundamental idea be ...

  4. Quadtrees UVA - 297

    题目链接:https://vjudge.net/problem/UVA-297 题目大意:如上图所示,可以用一个四分树来表示一个黑白图像,方法是用根节点表示整副图像,然后把行列各等分两等分,按照图中的 ...

  5. 297 - Quadtrees

    2019独角兽企业重金招聘Python工程师标准>>> 题意: 1. 两张 32*32 像素的图像进行叠加, 像素只有黑白两种颜色, 按以下规则叠加: (1). 黑+黑=黑; (2) ...

  6. UVa 297 四分树

    感觉特别像那个分治的日程表问题.是f的话就填,否则就不填,然后同一个表填两次.那么就是最后的结果. 1 #include <iostream> 2 #include <cstring ...

  7. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  8. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  9. Uniform Grid Quadtree kd树 Bounding Volume Hierarchy R树 搜索

    Region 資料結構 :  Uniform Grid 楔子 請你嘗試發掘,這一系列的資料結構是為了解決什麼問題呢? Uniform Grid 嗯,就是方格紙.將整個世界劃分為等寬方格. 實作方式是一 ...

最新文章

  1. mysql 编译安装
  2. java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
  3. mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1'
  4. Nginx教程-日志配置
  5. 北京尚学堂|程序员的智慧
  6. js(javascript)之浏览器控制台使用
  7. centos7 关于php使用pdo扩展连接数据库详细步骤
  8. 用前考虑清楚,伤敌一千自损八百的字体反爬虫
  9. ubuntu 命令记忆
  10. stata15导入csv中文乱码
  11. 明解C语言。初级版 部分练习代码
  12. linux命令 复制文件,linux复制文件的命令是什么?
  13. 计算机类专业及行业认识,我对于计算机行业的看法
  14. java jsp ssm210KTV点歌系统毕设成品源码项目介绍
  15. 《Cisco VPP SFC》2、NSH_SFC 安装
  16. html文件匹配歌手名和歌名,获取QQ音乐歌手姓名、歌曲信息、播放链接,爬,起,qq,名字...
  17. django问卷html,Django:动态问卷系统的Model设计
  18. 这些SEO搜索技巧你会不会用?
  19. 基于VBS的恶搞/表白程序
  20. 月球绘画软件测试,宇宙飞船简笔画:第一个登上月球的宇航员

热门文章

  1. Thread函数的参数传递和线程所有权转移(2.2)--std::move()
  2. zplane函数怎么用m文件调用_elastique.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  3. Pytext支持分布式训练,Facebook AI基于PyTorch的NLP框架,简化部署流程
  4. c fun函数求n个整数的平均值_Python语法示例——函数
  5. ortools解决tsp_ortools系列:后话
  6. java swing如何设置jtextarea对齐方式_【爵士钢琴】一次搞懂爵士经典Swing节奏!
  7. python 内置浏览器robobrowser_Python RoboBrowser – 如何从此页面获取内容
  8. window dockor mysql_windows下docker安装mysql
  9. 乔布斯斯坦福大学演讲pdf_演讲能力训练方法amp;优秀的演讲视频
  10. 《Android Property