题意:给定一个字符串,把该字符串划分为最少的回文串。

思路:dp,到达i点的回文串长度都存起来,那么dp[i]=min(以i为结尾的最短的回文串长度)。

code:

#include <bits/stdc++.h>
using namespace std;#define ft(i,s,t) for (int i=s;i<=t;i++)
#define cls(v,c) memset(v,c,sizeof(v))
const int N=1005;
const int INF=0x3f3f3f3f;char s[N];
int len,d[N];
vector<int>v[N];void sol()
{cls(d,INF);ft(i,0,N) v[i].clear();s[0]='%';len=strlen(s),len--;ft(i,2,len-1){int j=1;while (s[i-j]==s[i+j]){v[i+j].push_back(i-j);j++;}}ft(i,1,len-1){int j=0;while (s[i-j]==s[i+1+j]){v[i+1+j].push_back(i-j);j++;}}}
int main()
{int T;scanf("%d",&T);while (T--){scanf("%s",s+1);sol();d[0]=0;ft(i,1,len){d[i]=d[i-1]+1;for (int j=0;j<v[i].size();j++){int k=v[i][j];d[i]=min(d[i],d[k-1]+1);}}printf("%d\n",d[len]==0?1:d[len]);}
}

uva 11584——Partitioning by Palindromes相关推荐

  1. UVA 11584 Partitioning by Palindromes (字符串区间dp)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  2. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)

    题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串,字符串长度不超过1000. 分析: 1.dp[i]为字符0~i划分成的最小回文串的个数. 2.dp[j] = Min(dp[j ...

  3. UVA 11584 Partitioning by Palindromes 动态规划 入门

    这个题目的大意就是,给你一个字符串,然后让你求出最少的回文数.我开始傻逼了,写了一个o(n^3)的算法,结果老超时.然后略看了别人的题解,才知道有个如此的转移方程. f[i+1]=min(f[j]+1 ...

  4. UVA 11584—— Partitioning by Palindromes

    题意:给定一个串,然后问最少可以分割成多少个回文串. 思路:简单dp,dp[i]=min(dp[j]+1,1<j<=i),两次循环扫一遍即可,考察dp的思想. code: #include ...

  5. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  6. uva11584 Partitioning by Palindromes

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

  7. 回文串 --- 动态dp UVA 11584

    题目链接: https://cn.vjudge.net/problem/34398/origin 本题的大意其实很简单,就是找回文串,大致的思路如下: 1. 确定一个回文串,这里用到了自定义的chec ...

  8. uva 11584 - 字符串 dp

    题目链接 一个长度1000的字符串最少划分为几个回文字符串 ---------------------------------------------------------------------- ...

  9. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

最新文章

  1. Cmake常用基本命令复习
  2. void什么意思python_python 为什么没有 void 关键字?
  3. Day10 Python基础之特殊函数(八)
  4. [Spring5]Spring框架概述
  5. 第一类修正贝塞尔函数的C语言实现
  6. oracle10g备份导入
  7. 【图说Word】怎么在word的每一行前面和后面加上同一个字或字符?
  8. 大型网站架构系列:缓存在分布式系统中的应用(三)
  9. Shiro系列-Authenticator和AuthenticationStrategy是什么
  10. 【NLP专栏】图解 BERT 预训练模型!
  11. 双人游戏根据胜负关系匹配
  12. 基于javaweb+jsp的户籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
  13. PS怎么用3D功能怎么用?如何用PS做立体字
  14. 2012蓝桥杯省赛真题 鲁卡斯序列
  15. ReactOS学习笔记--编译和调试
  16. MYSQL数据库到VUE前端架构
  17. 交互设计笔记(4)——理解用户:定性研究
  18. 智慧化工厂人员定位离我们有多远?苏州新导智能定位系统
  19. vba中定时器的用法
  20. python怎么安装bokeh_Python如何使用bokeh包和geojson数据绘制地图

热门文章

  1. 解决关于 ionic3 启动白屏 控制台错误提示:Uncaught SyntaxError Use of const in strict mode.
  2. CSS margin 外边距 属性的位置关系
  3. 响应式框架Bootstrap栅格系统
  4. maven编译的时候排除junit测试类
  5. 根据location地址,在导航栏高亮显示当前页面
  6. Mac上Hive环境搭建
  7. angular2安装笔记
  8. LazyInitializationException--由于session关闭引发的异常
  9. JAVA 作业:图形界面
  10. welcome to my blog