Uriel's Corner
Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
导航
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
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
留言簿
(9)
给我留言
查看公开留言
查看私人留言
文章分类
(1191)
Codeforces(1)
DP(74)
ECUST OJ(3)
Hash(17)
HDOJ(1)
LeetCode(47)
POJ(88)
POJ题目分类(8)
比赛题解(2)
比赛总结(7)
并查集(12)
大水题(70)
递归 & 分治 (15)
二分.三分(32)
计算几何(18)
考研&保研复试上机题(31)
模拟(43)
排序(7)
数据结构(69)
数学(17)
搜索(91)
随感(8)
贪心(32)
图论(36)
网络流(3)
位运算(9)
闲来无事重切Leet Code(405)
游标.移动窗口(20)
字符串处理(25)
文章档案
(594)
2024年3月 (2)
2024年1月 (7)
2023年12月 (16)
2023年11月 (15)
2023年10月 (19)
2023年9月 (24)
2023年8月 (23)
2023年7月 (30)
2023年6月 (27)
2023年5月 (27)
2023年4月 (31)
2023年3月 (28)
2023年2月 (26)
2023年1月 (29)
2022年12月 (33)
2022年11月 (55)
2022年10月 (15)
2015年1月 (1)
2014年1月 (47)
2012年1月 (1)
2011年12月 (2)
2011年11月 (1)
2011年10月 (10)
2011年9月 (11)
2011年8月 (7)
2011年7月 (3)
2011年6月 (6)
2011年5月 (5)
2011年4月 (1)
2010年10月 (4)
2010年9月 (7)
2010年8月 (14)
2010年7月 (11)
2010年5月 (1)
2010年4月 (2)
2010年3月 (5)
2010年2月 (3)
2010年1月 (3)
2009年11月 (8)
2009年10月 (8)
2009年9月 (9)
2009年8月 (17)
搜索
积分与排名
积分 - 107721
排名 - 233
最新评论
1. re: [LeetCode]Word Break II-2014.01.13
万分感谢! 你的code是可读性最强的了!
--mandy
2. re: 清华大学计算机研究生机试题-2010年
题目OJ上都有,就没复述了@yajunw
--Uriel
3. re: 清华大学计算机研究生机试题-2010年
楼主为什么不把问题描述清楚一些呢
--yajunw
4. re: 2010 Hangzhou Regional On-Site J Infinite monkey theorem---KMP+DP
@zjushuiping
这个。。cpp blog插入代码的时候可以选的啊。。
--Uriel
5. re: 2010 Hangzhou Regional On-Site J Infinite monkey theorem---KMP+DP
请问你的这种代码折叠是怎样做到了?谢谢!
--zjushuiping
POJ 2406 Power Strings---KMP
Posted on 2009-08-29 05:00
Uriel
阅读(583)
评论(0)
编辑
收藏
引用
所属分类:
POJ
、
字符串处理
求一个字符串有几次匹配,
KMP
变形。。去东华前一天做出来时很高兴啊。。可惜那天看的另两道字符串都没出。
/**/
/*
Problem: 2406 User: Uriel
Memory: 5100K Time: 141MS
Language: C Result: Accepted
*/
#include
<
stdio.h
>
#include
<
stdlib.h
>
#include
<
string
.h
>
int
GetNextVal(
char
*
Pattern,
long
next[]);
long
Next[
1000001
];
char
dest[
1000001
];
int
main()
{
long
n,key;
while
(scanf(
"
%s
"
,dest)
!=
EOF)
{
if
(dest[
0
]
==
'
.
'
)exit(
0
);
n
=
strlen(dest);
GetNextVal(dest,Next);
key
=
n
/
(n
-
Next[n
-
1
]);
if
(n
%
(n
-
Next[n
-
1
])
==
0
)printf(
"
%d\n
"
,key);
else
printf(
"
1\n
"
);
memset(dest,
0x00
,
sizeof
(dest));
}
return
0
;
}
int
GetNextVal(
char
*
Pattern,
long
next[])
{
long
i
=
1
,j
=
0
;
long
p_len
=
strlen(Pattern);
next[
0
]
=
0
;
while
(i
<
p_len)
{
if
(Pattern[i]
==
Pattern[j])
{
next[i]
=
j
+
1
;
i
++
;
j
++
;
}
else
if
(j
>
0
)
{
j
=
next[j
-
1
];
}
else
{
next[i]
=
0
;
i
++
;
}
}
return
0
;
}
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
POJ 3450 Corporate Identity---KMP or strstr or Suffix Array
POJ 3613 Cow Relays---Floyd+矩阵相乘
POJ 1625 Censored!---AC 自动机+DP+高精度
POJ 3250 Bad Hair Day---栈的应用
POJ 3759 Simple Distributed computing system---最大流
POJ 1851 Map---计算几何
POJ 1380 Equipment Box && POJ 2172 Bricks---计算几何
POJ 2284 That Nice Euler Circuit---计算几何
POJ 1931 Biometrics---计算几何
POJ 3129 How I Wonder What You Are!----计算几何
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © Uriel