Yuan
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
hdoj 3363
/**/
/*
好题
有一个结论,最多只需两刀切
用一个长度为n/2的区间去扫就行
如果这个区间里H的个数为h/2,则T的个数也为t/2,就满足了
所以只考虑H的变化,当它满足了就满足了
而扫的过程,H ++或--或不变,但由于不平衡,所以总会变到h/2
*/
#include
<
cstdio
>
#include
<
cstring
>
const
int
MAXN
=
100010
;
int
sum[MAXN];
int
main()
{
int
n;
char
ch;
while
(scanf(
"
%d\n
"
,
&
n),n)
{
for
(
int
i
=
1
;i
<=
n;i
++
)
{
ch
=
getchar();
sum[i]
=
sum[i
-
1
];
if
(ch
==
'
H
'
)sum[i]
++
;
}
if
(sum[n]
&
1
||
n
&
1
)
{printf(
"
-1\n
"
);
continue
;}
int
beg
=
0
,end
=
n
/
2
;
while
(end
<
n)
{
if
((sum[end]
-
sum[beg])
*
2
==
sum[n]
&&
((end
-
sum[end])
-
(beg
-
sum[beg]))
*
2
==
n
-
sum[n])
break
;
beg
++
,end
++
;
}
if
(end
==
n
/
2
)printf(
"
1\n%d\n
"
,end);
else
printf(
"
2\n%d %d\n
"
,beg,end);
}
return
0
;
}
发表于 2010-04-27 09:29
_Yuan
阅读(157)
评论(0)
编辑
收藏
引用
所属分类:
OThers
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
hdu 3403 回文日期
ural 1720
poj 3274 保存相对值
CF78D 统计的方法
76D 比较巧
zoj 3491 优先队列 很巧 路线的编码
ural 1113 Jeep problem
CodeForces 66
贴做题记录...
做题记录...
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
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
@杨书鉴
你写的排序好像不对啊。。。
--小猊