UVA11584

https://www.luogu.org/problemnew/show/UVA11584

暑假开始刷lrj紫/蓝书DP题

这几天做的一道

思路

  1. 预处理出所有的回文串是否存在
  2. 前提 如果是j~i是回文串
  3. 方程 f[i]=min(f[i],f[j-1]+1);

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
# define maxn
int n,len;
int s[maxn][maxn];//s[i][j]表示i到j是否是回文串
char st[maxn];//字符串
int f[maxn];
void judge()
{
for(int i=;i<=len;i++)
{
s[i][i]=;//每个字符自己是一个回文串
if(st[i]==st[i+])//判断与他后面的是不是回文串
s[i][i+]=; //去掉了偶数中心有两个的麻烦
}
for(int i=len;i>=;i--)
for(int j=i+;j<=len;j++)
{
if(st[i]==st[j]&&s[i+][j-])
s[i][j]=;//如果相等且中间的是回文串
//那么他也是回文串
}
}
int main()
{
cin>>n;
while(n)
{
memset(f,0x7f,sizeof(f));//初始化为最大值
memset(s,,sizeof(s));
n--;
scanf("%s",st+);//从1开始存比较方便
st[]='';//设第0位为0 不然len为0
len=strlen(st+);//长度
judge();//判断回文串
f[]=;//边界条件
for(int i=;i<=len;i++)
{
for(int j=i;j>=;j--)
{
if(s[j][i])//如果j到i是回文串
//仔细看循环方式 注意是j到i
f[i]=min(f[i],f[j-]+);
}
}
printf("%d\n",f[len]);//答案存在f[len]中
}
}

【题解】UVA11584 Partitioning by Palindromes的更多相关文章

  1. UVa11584 - Partitioning by Palindromes(区间DP)

    题目大意 给定一个小写字母组成的字符串S,你的任务是划分成尽量少的回文串 题解 方程就是dp[j]=min(dp[i-1]+1)(i<=j,s[i..j]是回文串) 代码: #include&l ...

  2. UVA-11584 Partitioning by Palindromes 动态规划 回文串的最少个数

    题目链接:https://cn.vjudge.net/problem/UVA-11584 题意 给一个字符串序列,问回文串的最少个数. 例:aaadbccb 分为aaa, d, bccb三份 n< ...

  3. UVA-11584 Partitioning by Palindromes (简单线性DP)

    题目大意:给一个全是小写字母的字符串,判断最少可分为几个回文子序列.如:“aaadbccb” 最少能分为 “aaa” “d” “bccb” 共三个回文子序列,又如 “aaa” 最少能分为 1 个回文子 ...

  4. uva11584 Partitioning by Palindromes

    题目大意: 给出一个字符串,把他划分成尽量少的回文串,问最少的回文串个数 /* 先预处理所有回文子串 dp[i]表示字符1~i划分成的最小回文串的个数 */ #include<iostream& ...

  5. UVA - 11584 Partitioning by Palindromes[序列DP]

    UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...

  6. UVA 11584 一 Partitioning by Palindromes

    Partitioning by Palindromes Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %l ...

  7. uva 11584 Partitioning by Palindromes 线性dp

    // uva 11584 Partitioning by Palindromes 线性dp // // 题目意思是将一个字符串划分成尽量少的回文串 // // f[i]表示前i个字符能化成最少的回文串 ...

  8. 区间DP UVA 11584 Partitioning by Palindromes

    题目传送门 /* 题意:给一个字符串,划分成尽量少的回文串 区间DP:状态转移方程:dp[i] = min (dp[i], dp[j-1] + 1); dp[i] 表示前i个字符划分的最少回文串, 如 ...

  9. UVA-11584:Partitioning by Palindromes(基础DP)

    今天带来一个简单的线性结构上的DP,与上次的照明系统(UVA11400)是同一种类型题,便于大家类比.总结.理解,但难度上降低了. We say a sequence of characters is ...

随机推荐

  1. 数据库中存放着HTML并附带样式,如何在界面上对已有的样式进行修改

    在工作中遇到这样一个问题,数据库中存放着HTML代码,并且还带有样式,我要在界面上修改他已经写好的样式,例如把这个字段的字体改成微软雅黑,数据库中对应字段内容如下图 在界面面上是直接把上图这段HTML ...

  2. Vue1.0基础学习笔记整理

    最近一直在使用Vue.js开发项目,现将在学习过程中遇到的一些学习小细节总结如下: 1.只处理单次插值,今后的数据变化就不会再引起插值更新了 <span>This will never c ...

  3. HashMap和Hashtable的比较

    相同点 HashMap和Hashtable都是存储“键值对(key-value)”的散列表,而且都是采用拉链法解决hash冲突的.但是1.8中,hashmap引入了红黑树.Hashtable没有引入红 ...

  4. SQL:exec sp_executesql 用法

    --這種是無效的過程 declare @sql nvarchar(500), @where nvarchar(500),@i nvarchar(64),@p nvarchar(50),@id int ...

  5. javascript接入阿里云服务器

    authInfo = r.data.authInfo[0]//后台请求的 var client = new OSS({ region: 'oss-cn-beijing',// 云账号AccessKey ...

  6. 关于asp.net网站中web.config的配置

    1.Session生命周期配置 2.连接默认错误页 实例说明:在一些网站中,当网络地址发生错误时,通常会自动跳转到一个页面,并在该页面显示错误信息,此功能也可以通过配置web.config文件配置实现 ...

  7. vuejs源码摘抄(二)

    创建一个用来观察对象的observe类,这个类会附加在被观察的对象上,并且把被观察对象的属性值转换成getter/setter,同时,收集依赖和分发更新,实现代码如下: /* * not type c ...

  8. PLC-Heart

  9. python大数据

    http://blog.csdn.net/xnby/article/details/50782913 一句话总结:spark是一个基于内存的大数据计算框架, 上层包括了:Spark SQL类似Hive ...

  10. SVNKit学习——使用High-Level API管理Working Copy示例(六)

    本篇内容是基于SVNKit High-Level API实现的针对Working copy的操作,操作内容与SVN图形化界面.命令行类似. High-Level API类图: 核心思想: 所有操作由各 ...