博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【例题 6-11 UVA-297】Quadtrees
阅读量:5077 次
发布时间:2019-06-12

本文共 1279 字,大约阅读时间需要 4 分钟。

【链接】

【题意】

在这里输入题意

【题解】

发现根本不用存节点信息。
遇到了叶子节点且为黑色,就直接覆盖矩阵就好(因为是并集);

【代码】

#include 
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 = x1; i <= x2; i++) for (int j = y1; j <= y2; j++) bo[i][j] = 1;}void dfs(int x1, int y1, int x2, int y2) { if (s[pos] == 'f' || s[pos] == 'e') { if (s[pos] == 'f') { fugai(x1, y1, x2, y2); } return; } int len = (x2 - x1 + 1) / 2; pos++; dfs(x1, y1 + len, x1 + len - 1, y1 + len + len - 1); pos++; dfs(x1, y1, x1 + len - 1, y1 + len - 1); pos++; dfs(x1 + len, y1, x1 + len + len - 1, y1 + len - 1); pos++; dfs(x1 + len, y1 + len, x1 + len + len - 1, y1 + len + len - 1);}int main() { //freopen("rush.txt", "r", stdin); int T; scanf("%d", &T); while (T--) { memset(bo, 0, sizeof bo); cin >> s; pos = 0; dfs(1, 1, 32, 32); cin >> s; pos = 0; dfs(1, 1, 32, 32); int cnt = 0; for (int i = 1; i <= 32; i++) for (int j = 1; j <= 32; j++) cnt += bo[i][j]; printf("There are %d black pixels.\n", cnt); } return 0;}

转载于:https://www.cnblogs.com/AWCXV/p/7704942.html

你可能感兴趣的文章
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>
url查询参数解析
查看>>
http://coolshell.cn/articles/10910.html
查看>>
[转]jsbsim基础概念
查看>>
JSP作业3-金字塔
查看>>
Generate BKS File( Bouncy Castle KeyStore)
查看>>
obdg反汇编破解crackme
查看>>
Python作业1 登录程序
查看>>
js弹出模态与非模态页面
查看>>
第四讲 深入介绍信号与槽
查看>>
[转]tx:advice标签简介
查看>>
【IOS6.0 自学瞎折腾】(四)Xib可视化编程
查看>>
MARS安卓笔记
查看>>