uva 297(二叉树)
来源:互联网 发布:知乎联合创始人张亮 编辑:程序博客网 时间:2024/05/26 12:56
题解:建两棵树然后深搜遍历,需要注意在深搜的函数里随着树的层次变深,每个黑色小方块的值也在不断减小,所以累加的值是 1024 / pow (4, l),l是数的深度。
#include <cstdio>#include <string>#include <iostream>#include <cmath>using namespace std;const int N = 10010;struct Node { char c; Node* s[4]; Node() { c = '\0'; s[0] = s[1] = s[2] = s[3] = NULL; }};int len, sum, i;Node* build(string str) { i++; if (i == len) return NULL; Node* node = new Node; node -> c = str[i]; if (node -> c == 'p') { node -> s[0] = build(str); node -> s[1] = build(str); node -> s[2] = build(str); node -> s[3] = build(str); } return node;}void dfs(Node* node1, Node* node2, int l) { if (node1 == NULL && node2 == NULL) return; if (node2 == NULL) { if (node1 -> c == 'f') { sum += 1024 / pow(4, l); return; } for (int i = 0; i < 4; i++) dfs(node1 -> s[i], node2, l + 1); return; } if (node1 == NULL) { if (node2 -> c == 'f') { sum += 1024 / pow(4, l); return; } for (int i = 0; i < 4; i++) dfs(node1, node2 -> s[i], l + 1); return; } if (node1 -> c == 'f' || node2 -> c == 'f') { sum += 1024 / pow(4, l); return; } for (int i = 0; i < 4; i++) dfs(node1 -> s[i], node2 -> s[i], l + 1); return;}void Delete(Node* node) { if (node == NULL) return; for (int i = 0; i < 4; i++) if (node -> s[i] != NULL) Delete(node -> s[i]); delete node;}int main() { int t; string str1, str2; scanf("%d", &t); getchar(); while (t--) { sum = 0; getline(cin, str1); getline(cin, str2); len = str1.size(); i = -1; Node* root1 = build(str1); len = str2.size(); i = -1; Node* root2 = build(str2); dfs(root1, root2, 0); printf("There are %d black pixels.\n", sum); Delete(root1); Delete(root2); } return 0;}
0 0
- uva 297(二叉树)
- uva 112(二叉树)
- uva 548(二叉树)
- uva 712(二叉树)
- uva 699(二叉树)
- uva 839(二叉树)
- uva 122 二叉树
- 【数组二叉树】UVA
- UVa 11020 排序二叉树
- uva 10701(简单二叉树)
- UVA 712(二叉树模拟)
- 二叉树 UVA 548 Tree
- uva 1354(二叉树+暴力)
- uva-536 二叉树重建
- UVA - 548 Tree 二叉树
- UVa--548 Tree(二叉树)
- UVA 536 二叉树还原
- UVA 122 二叉树模拟
- APP用户体验设计9大规律
- 拖拽+改变大小
- 《都市摩天楼》-诺基亚经典JAVA小游戏登录iOS
- java web.xml被文件加载过程及加载顺序小结
- IT企业文化の东方通信
- uva 297(二叉树)
- js实现多物体运动框架并兼容各浏览器
- [HDOJ 4876] ZCC loves cards [搜索]
- <xhtmlConformance mode="Legacy"/> AJAX不起作用
- 风格很独特统计人员不特发
- 请求转发与重定向的区别
- 提高程序员项目设计水平的11条建议
- iOS App 自定义 URL Scheme 设计
- 还需要去逐个检查电脑的配置吗?一条DOS命令搞定