UVA 12166 Equilibrium Mobile 修改天平
2016-03-10 23:19
309 查看
思路:
根据每个结点的深度和数值就可算出整个天平的总质量(假设的平衡的情况)
算出后,记录结果出现次数最多的个数MAX,在让总节点个数减去MAX即可!
深度计算方法:
遇到[ 深度++,遇到] 深度--即可!
注意:
数组尽量开大点,RE了好几次!
根据每个结点的深度和数值就可算出整个天平的总质量(假设的平衡的情况)
算出后,记录结果出现次数最多的个数MAX,在让总节点个数减去MAX即可!
深度计算方法:
遇到[ 深度++,遇到] 深度--即可!
注意:
数组尽量开大点,RE了好几次!
#include<bits/stdc++.h> using namespace std; const int maxn = 1000000 + 10; char s[maxn]; typedef long long ll; map<ll,ll>m; int main() { int T; scanf("%d",&T); while(T--){ m.clear(); scanf("%s",s); int len = strlen(s); ll h = 0,sum_dig=0,MAX=-1; for (int i = 0; i < len; ++i){ char ch = s[i]; if (ch == '[')++h; else if (ch == ']')--h; else if (isdigit(ch)){ ++sum_dig; ll key=0; while(isdigit(s[i])){ key = key * 10 + s[i] - 48; ++i; }--i; ll val = key << h; m[val]++; MAX= max(MAX,m[val]); } } printf("%lld\n",sum_dig-MAX); } return 0; }
相关文章推荐
- Easy UI bug:iframe中请求页面而session失效时页面跳转问题
- poj 2478 Farey Sequence
- UESTC 1073 秋实大哥与线段树 线段树&&改值与区间和
- iOS边练边学--UIScrollView和xib文件实现简单分页+定时器初使用
- EasyUI DataGrid 相同连续列合并
- EasyUI DataGrid 相同连续列合并
- EasyUI DataGrid 相同连续列合并
- UITableView介绍 之下拉刷新原理
- iOS学习 UITableView 单选
- Android的UI框架汇总整理
- Android中Handler,Looper和MessageQueue工作原理解析
- 【leetcode】Array——Longest Consecutive Sequence(128)
- Android高阶UI之加入购物车选择颜色、尺码实现
- UIAlertControlle的基本用法
- Serializable序列化接口serialVersionUID的理解
- Android高阶UI之FlowLayout流布局实现加入购物车标签选择
- IOS学习 UITableView 单元格风格和修改单元格背景
- $.ajax()post方式请求参数无法传递,request.getParameter()无法获取
- 优先队列priority_queue基本操作
- Handler,Looper, MessageQueue的工作原理解析