Yuan
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
hdu 2766 保留最多的公共部分,该点保留的话则根的值也确定了
/**/
/*
不错的一道题
题意:给出一棵二叉树,有权值,求改变最小的点使平衡
其实,有些点不用改变,所以如果第k层的点a不用改变,则平衡时其根的值为a*2^k
所以算出所有点,如果它不用改变时对应根的值,存在数组里
然后求这个数组里相同个数最多的Max,答案就是tot-Max了
还有,遇到[表示层次++,遇到]表示层次--
*/
#include
<
cstdio
>
#include
<
cstring
>
#include
<
algorithm
>
using
namespace
std;
const
int
MAXN
=
1000010
;
char
str[MAXN];
long
long
ans[MAXN];
int
main()
{
int
T;
scanf(
"
%d
"
,
&
T);
while
(T
--
)
{
scanf(
"
%s
"
,str);
int
level
=
0
,tot
=
0
;
for
(
int
i
=
0
;str[i];i
++
)
{
if
(str[i]
==
'
[
'
)level
++
;
else
if
(str[i]
==
'
]
'
)level
--
;
else
if
(str[i]
<=
'
9
'
&&
str[i]
>=
'
0
'
)
{
long
long
tmp
=
0
;
for
(;str[i]
&&
str[i]
<=
'
9
'
&&
str[i]
>=
'
0
'
;i
++
)
tmp
=
tmp
*
10
+
str[i]
-
'
0
'
;
i
--
;
tmp
=
tmp
<<
level;
ans[tot
++
]
=
tmp;
}
}
sort(ans,ans
+
tot);
int
Max
=
1
,cnt
=
0
;
for
(
int
i
=
0
;i
<
tot;i
++
)
{
if
(i
==
0
||
ans[i]
!=
ans[i
-
1
])cnt
=
1
;
else
{
cnt
++
;
if
(Max
<
cnt)Max
=
cnt;
}
}
printf(
"
%d\n
"
,tot
-
Max);
}
return
0
;
}
发表于 2010-04-29 00:16
_Yuan
阅读(184)
评论(0)
编辑
收藏
引用
所属分类:
OThers
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
hdu 3403 回文日期
ural 1720
poj 3274 保存相对值
CF78D 统计的方法
76D 比较巧
zoj 3491 优先队列 很巧 路线的编码
ural 1113 Jeep problem
CodeForces 66
贴做题记录...
做题记录...
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
Dp(27)
(rss)
OJ解题报告(153)
(rss)
OThers(17)
(rss)
TopCoder
(rss)
计算几何(2)
(rss)
枚举(4)
(rss)
数据结构(6)
(rss)
数论(5)
(rss)
搜索(2)
(rss)
贪心(4)
(rss)
图论(10)
(rss)
学习笔记(6)
(rss)
学习总结(19)
(rss)
组合数学(3)
(rss)
Links
Lord Li
Lord zeus
搜索
最新评论
1. re: 双向BFS[未登录]
博主,只用一个队列不就可以解决你第一个问题了吗
--jason
2. re:nvgagkguaioguaiiananfajfofajiosfgoasoajgia[未登录]
cscdcuis
--1
3. re: zoj 3436 逆推 搜
评论内容较长,点击标题查看
--ZH
4. re: zoj 2318 计算几何 spfa判负环
写得好!
--ipqhjjybj
5. re: Poj 1066
@杨书鉴
你写的排序好像不对啊。。。
--小猊