51nod 1154 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1154
输入字符串S(S的长度<= 5000)。
输出最少的划分数量。
abbaabaa
3
原本以为N^2会爆炸后来发现好像也不会= =倒是题意搞懵逼我了,题意是必须全部划分为回文子串,求最少划分几个,我以为可以出现非回文子串,就是0......天真
dp[i]表示前i个字符的答案,第i个字符可能单独也可能与前面的某一串相连构成一个回文串,答案就是 dp[i]=MIN{dp[j]+1 | j<i&&j+1--i构成回文串}
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define inf 0x3f3f3f3f
LL mod=1e9+;
int dp[];
char s[];
bool ok(int a,int b)
{
int m=b-((b-a)>>);
for(int i=a,j=b;i<=m;++i,--j)
if(s[i]!=s[j]) return ;
return ;
}
int main()
{
int N,i,j;
scanf("%s",s+);
N=strlen(s+);
for(i=;i<=N;++i)
{
dp[i]=dp[i-]+;
for(j=;j<i;++j)
{
if(ok(j+,i)&&dp[i]>dp[j]+) dp[i]=dp[j]+;
}
}
printf("%d\n",dp[N]);
return ;
}
51nod 1154 dp的更多相关文章
- 51nod 1154【DP】
区间DP大暴力吧?GG. dp[ i ] 为字符至 i 的最少数量. 如果[Left , Right]是回文串, dp[Right] = min(dp[ Right ] , dp[Left-1] + ...
- 51Nod - 1154 回文串划分(最少回文串dp)
回文串划分 有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有多种划分方式. a|bb|aabaa - 3 个回文串 a|bb|a|aba|a - 5 个回文串 a|b ...
- 51NOD 1154 回文串的划分(DP)
思路:参考了网上,思路很清奇,借助vis[i][j]来表示从i到j是否为回文串,回文串这边是用的双重循环来写的:dp[i]用来表示以i结尾的字符串最少的回文串有多长. #include<cstr ...
- 51nod 1270 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270 简单的线性dp,最近狂刷水题真的是...药丸 差值最大得话要么是峰 ...
- 51nod 1154 回文串划分
1154 回文串划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有 ...
- 【51nod 1154】 回文串划分
有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有多种划分方式. a|bb|aabaa - 3 个回文串 a|bb|a|aba|a - 5 个回文串 a|b|b|a|a|b ...
- 51nod 1412 AVL树的种类(dp)
题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> ...
- 51nod 1183 编辑距离(dp)
题目链接:51nod 1183 编辑距离 #include<cstdio> #include<cstring> #include<algorithm> using ...
- 51nod 1051 最大子矩阵和(dp)
题目链接:51nod 1051 最大子矩阵和 实质是把最大子段和扩展到二维.读题注意m,n... #include<cstdio> #include<cstring> #inc ...
随机推荐
- centos6.5关闭防火墙命令
1.永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2.即时生效,重启后复原 开启: service iptabl ...
- python进程间数据不共享(示例演示)
import multiprocessing data_list = [] def task(arg): data_list.append(arg) print(data_list) def run( ...
- dedecms中的内容页中的变量
{dede:php runphp='yes'} var_dump($refObj->Fields); {/dede:php}
- BCrypt 加密实现
Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...
- vue自定义全局和局部指令
一.介绍 1.除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令. 2.自定义指令的分类 1.全局指令 2.局部指令 3.自定义全局指令格式 V ...
- linux svn 命令
windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...
- 求组合数的方法:转载自VincentCZW的博客
遇到了就查了下:地址:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/18/2508189.html 求一个组合数Cnm的值,Cnm= n! ...
- java 怎么让打印信息换行?
System.out.println("账号=="+name+"\n"); System.out.println("密码=="+pwd+&q ...
- canvas笔记1
w3c定义: <canvas> 标签定义图形,比如图表和其他图像. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. canvas 对象 属性: width he ...
- 反射_获取字段的Description信息
var memInfo = enumType.GetType().GetMember(enumType.ToString()); var attributes = memInfo[0].GetCust ...