习题6-6 修改天平 UVa 12166 二叉树 *
来源:互联网 发布:银行对接软件 编辑:程序博客网 时间:2024/05/29 13:49
题意:给一个深度不超过16的二叉树,代表一个天平。每根杆都悬挂在中间,每个秤砣的重量已知。至少修改多少个秤砣的重量才能让天平平衡?
分析:自己写了一会没写出来,搜的题解。因为要想修改数量最少,那么至少有一个不会修改,二叉树每一层的权重是不一样的,比如说第一层‘右子树一个秤砣的重量是3,和第二层一个秤砣的重量3比较,第二层的那个3如果不变,那么第一层左子树的重量就是6,所以说第一层右子树的那个3需要修改。
说的不清楚,仔细体会一下代码就懂了。
#include <iostream>#include <string>#include <map>#include <algorithm>#include <cstdio>using namespace std;string line;map<long long, int> base;map<long long,int>::iterator it;int sum;void dfs(int depth, int s ,int e) { if(line[s] == '[') { int p = 0; for(int i = s + 1; i != e; ++i) { if(line[i] == '[') ++p; if(line[i] == ']') --p; if(p == 0 && line[i] == ',') { dfs(depth + 1, s + 1, i - 1); dfs(depth + 1, i + 1, e - 1); } } } else { long long w = 0; for(int i = s; i <= e; ++i) w = w * 10 + line[i] - '0'; ++sum, ++base[w << depth]; }}int main() { // freopen("f.txt","r",stdin); int T; cin >> T; while(T--) { cin >> line; base.clear(); sum = 0; dfs(0, 0, line.size() - 1); int maxn = 0; for(it = base.begin(); it != base.end(); ++it){ maxn = max(maxn, it->second); // cout<<it->second<<endl; } // cout<<sum<<endl; cout << sum - maxn << endl; }}
0 0
- 习题6-6 修改天平 UVa 12166 二叉树 *
- 习题6-6 修改天平 UVa12166
- UVA 12166 Equilibrium Mobile 修改天平
- [UVa 12166] 修改天平(Equilibrium Mobile)
- 习题6-3 二叉树的重建 UVa 536
- 习题6-3 UVA 536 Tree Recovery 二叉树重建
- 习题6-6 修改天平(Equilibrium Mobile, NWERC 2008, UVa12166)
- 例题6-9 天平 UVa 839 递归
- UVa-536 习题6-3 二叉树重建(Tree Recovery,ULM 1997)
- 习题6-3 二叉树重建(Tree Recovery, ULM 1997, UVa 536)
- 紫书章六例题九 天平 UVA 839(更新二叉树的节点上的值)
- 例题6-9 天平(Not so Mobile, UVa 839)
- 习题6-2 S树 UVa 712
- 习题6-11 树重建 UVa 10410 *
- 习题6-3 二叉树重建 UVa536
- 习题9-6 uva 10723
- UVA-12166 天平性质+字符处理
- UVa839_(二叉树递归_天平问题)
- iOS动力效果
- 动画特效之动画组
- 关于c#代码Convert.ToChar(null);出现异常,而object obj = null; Convert.ToChar(obj);//返回'\0'空字符问题详解
- 安卓(android)开发框架的说明2:基于Android Studio的安卓工程开发目录介绍
- 屏蔽优酷客户端广告
- 习题6-6 修改天平 UVa 12166 二叉树 *
- ADS-B SBS-3入手
- stitching.cpp鱼眼图像拼接融合 源码分析
- 动画特效之转场动画
- kinetis的nfc调试
- Why NoSQL?
- 1015. Reversible Primes (20) 进制转换
- Linux中C语言的特殊用法
- Apache HTTP Server2.4安装