beloved_ACM
SB,NB,都是一个B.
posts - 29, comments - 2, trackbacks - 0, articles - 0
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
POJ_1200_RK算法
Posted on 2011-09-11 12:38
成幸毅
阅读(332)
评论(0)
编辑
收藏
引用
#include
<
iostream
>
using
namespace
std;
int
c[
1000
];
char
s[
10000000
];
int
ss[
1000
];
int
key[
1000
];
bool
hash[
10000000
];
int
n,d;
int
main()
{
while
(scanf(
"
%d%d
"
,
&
n,
&
d)
!=
EOF)
{
memset(hash,
0
,
sizeof
(hash));
scanf(
"
%s
"
,s);
int
len
=
strlen(s);
c[
0
]
=
1
;
for
(
int
i
=
1
; i
<
100
; i
++
)
c[i]
=
c[i
-
1
]
*
d;
int
k
=
0
;
for
(
int
i
=
0
; i
<
len; i
++
)
{
if
(key[s[i]]
==
0
)
key[s[i]]
=
k
++
;
if
(k
==
d)
break
;
}
int
h
=
0
;
for
(
int
i
=
0
; i
<
n; i
++
)
{
h
=
h
*
d
+
key[s[i]];
}
hash[h]
=
true
;
int
ans
=
1
;
for
(
int
i
=
0
; i
<
len
-
n; i
++
)
{
h
=
d
*
h
-
key[s[i]]
*
c[n]
+
key[s[i
+
n]];
if
(
!
hash[h])
{
hash[h]
=
true
;
ans
++
;
}
}
printf(
"
%d\n
"
,ans);
}
//
system("pause");
return
0
;
}
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 成幸毅
日历
<
2011年9月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
DP
随笔档案
2011年9月 (9)
2011年8月 (1)
2011年3月 (1)
2010年10月 (15)
2010年9月 (3)
搜索
最新评论
1. re: 最长递增子序列
@王元达
thx
--passerby
2. re: 最长递增子序列
程序非常不错,很详细
--王元达
阅读排行榜
1. 最长递增子序列(1501)
2. MANACHER'S ALGORITHM(1269)
3. POJ_2987 最大权闭合图(563)
4. POJ 3498 满足点容量限制的网络流(536)
5. POJ 3084_最小割(484)
评论排行榜
1. 最长递增子序列(2)
2. 混合图欧拉回路(0)
3. ZOJ_2314 无源汇带上下界的可行流(0)
4. 康拓展开应用实例(0)
5. MANACHER'S ALGORITHM(0)