misschuer
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2010年4月
>
日
一
二
三
四
五
六
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
公告
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
as(2)
(rss)
bfs(1)
(rss)
dfs
(rss)
dp(2)
(rss)
Java(2)
(rss)
mathematics(3)
(rss)
netty
(rss)
prim
(rss)
tt
(rss)
贪心
(rss)
字典数
(rss)
文章分类
acm
(rss)
Java
(rss)
随笔档案
2018年4月 (1)
2017年12月 (4)
2015年5月 (2)
2013年11月 (1)
2012年8月 (2)
2011年11月 (1)
2011年9月 (1)
2011年8月 (1)
2011年5月 (1)
2011年4月 (2)
2011年3月 (16)
2010年10月 (1)
2010年4月 (3)
2010年3月 (1)
2010年1月 (4)
2009年12月 (2)
2009年5月 (3)
2009年4月 (15)
文章档案
2009年4月 (1)
阅读排行榜
1. hdu 1402 A * B Problem Plus (1880)
2. alchemy c 图像的缩放 (三次卷积)(1735)
3. A*算法求第k短路(1050)
4. 合并果子 (905)
5. hdu 1421 搬寝室 详解(822)
评论排行榜
1. hdu 1402 A * B Problem Plus (6)
2. hdu 1175 连连看(4)
3. ZOJ 3194 Coverage (3)
4. hdu 1421 搬寝室 详解(3)
5. 竞赛图 (2)
常用链接
我的随笔
我的评论
我参与的随笔
统计
随笔 - 61
文章 - 1
评论 - 18
引用 - 0
积分与排名
积分 - 24126
排名 - 728
百事通
hao123
WPL
杭电
松松
星和
最新评论
1. re: 竞赛图
怎么感觉理论就有问题,太坑爹了
--此最相思
2. re: hdu 1175 连连看
由于HDU的数据不强所以 代码是有点错误
--misschuer
3. re: hdu 1175 连连看
@Xy
我表示刚看到 然后测试了一下 可以过的吧
--misschuer
4. re: hdu 1175 连连看
评论内容较长,点击标题查看
--ahfywff
5. re: hdu 1175 连连看[未登录]
你的代码WA的
--Xy
hdu 1513 poj 1159 vijos 1327 Palindrome
http://acm.hdu.edu.cn/showproblem.php?pid=1513
#include
<
iostream
>
using
namespace
std;
#define
M 5002
short
dp[ M ][
3
];
//
dp[ i ][ j ]从第i个开始 长度为j的子串最少需要添加几个字符来构成回文
//
只有j , j - 1 , j - 2有用所以只要开辟3个就够
char
str[ M ];
int
main()
{
int
i , n , j , k , f;
while
(scanf (
"
%d%*c
"
,
&
n)
==
1
)
{
gets(str);
dp[
0
][
0
]
=
0
;
for
(i
=
1
;i
<=
n;
++
i)
{
dp[ i ][
1
]
=
0
;
dp[ i ][
0
]
=
0
;
}
for
(j
=
2
;j
<=
n;
++
j)
{
for
(i
=
1
;i
<=
n
-
j
+
1
;
++
i)
{
if
(str[i
-
1
]
==
str[i
+
j
-
2
])
{
dp[ i ][j
%
3
]
=
dp[i
+
1
][(j
+
1
)
%
3
];
}
else
{
k
=
(j
+
2
)
%
3
;
if
(dp[ i ][ k ]
<
dp[i
+
1
][ k ])
dp[ i ][j
%
3
]
=
dp[ i ][ k ]
+
1
;
else
dp[ i ][j
%
3
]
=
dp[i
+
1
][ k ]
+
1
;
}
}
}
printf (
"
%d\n
"
, dp[
1
][n
%
3
]);
}
return
0
;
}
递推方程
str[i-1]==str[i+j-2] dp[i][j]=dp[i+1][j-2];
str[i-1]!=str[i+j-2] dp[i][j]=MIN(dp[i][j-1],dp[i+1][j-1])+1;
posted on 2010-04-12 12:15
此最相思
阅读(438)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 此最相思