题目大意

给出一个字符串问最少有多少个回文串。

思路

dp[i]=min{ dp[j-1]+1 }  ([j,i]是一个回文串,0<j<i)

代码

#include <bits/stdc++.h>
using namespace std;const int maxn = 10000;char s[maxn];
int dp[maxn];
bool ok(int l,int r)
{while(l<r) {if(s[l]!=s[r]) {return false;}l++,r--;}return true;
}/*
dp[i]=min{dp[j-1]+1}([j,i]是一个回文串,0<j<i)
*/int main()
{int T;cin >> T;while(T--) {scanf("%s", s+1);int n=strlen(s+1);for(int i=1;i<=n;i++){dp[i]=i;for(int j=1;j<=i;j++) {if(ok(j,i)) {dp[i]=min(dp[i], dp[j-1]+1);}}}printf("%d\n", dp[n]);}return 0;
}

Partitioning by Palindromes UVA - 11584(DP)相关推荐

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

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

  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 (字符串区间dp)

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

  4. UVA 11584—— Partitioning by Palindromes

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

  5. uva 11584——Partitioning by Palindromes

    题意:给定一个字符串,把该字符串划分为最少的回文串. 思路:dp,到达i点的回文串长度都存起来,那么dp[i]=min(以i为结尾的最短的回文串长度). code: #include <bits ...

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

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

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

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

  8. uva 11584 - 字符串 dp

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

  9. uva 590 dp

    UVA 590 - Always on the run 小偷要从城市1经过k天道城市n,给出这n个城市之间的航班表,要求第k天到城市n的最小花费. dp[i][j] 第i天小偷在城市j的最小花费. 枚 ...

  10. uva11584 Partitioning by Palindromes

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

最新文章

  1. 【opencv】(2) 图像处理:边界填充、图像融合、图像阈值、数值计算
  2. 前去哪儿产品总监白羽:做SaaS产品需要注意哪些坑?
  3. Python Qt GUI快速编程第六章代码分析
  4. 我的研究生这三年(含腾讯AI Lab实习、CVPR发表经验)
  5. 在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
  6. vue目录结构及简单的开发介绍
  7. php 堵塞 消息队列,PHP的并发处理
  8. 软件开源是如何赚钱?
  9. 【一起学加密4】一次性密码本
  10. 电阻触摸屏原理及电容触摸屏原理(附上原图)以及各自优缺点
  11. linux虚拟串口控制器实现---适用于无开发板学习tty driver
  12. XHTML的目标,规则和细节
  13. Windows Home Server V2 Code Name Vail Preview
  14. java抽象类存在的意义
  15. 商标知识:食品行业商标注册应注册哪几个类别?
  16. 在计算机网络中 工作在物理层上的设备,简述工作在物理层,数据链路层和网络层上的设备分别有哪些...
  17. SPSS可以制作哪些图表?
  18. Android EventLog含义
  19. 港交所新股发售竞争激烈:网易云音乐暗盘破发,凯莱英、顺丰同城等暂未获得足额申购
  20. 【立创EDA开源推荐】09期基于ESP32的物联网时钟

热门文章

  1. mysql报错解决方式:1449 - The user specified as a definer (‘root‘@‘%‘) does not exist
  2. 一文读懂 DNS 解析的工作机制和优化挑战
  3. spring boot整合微信支付
  4. 广告行业中富媒体的概念
  5. Mysql索引:图文并茂,深入探究索引的原理和使用
  6. 瑞尔森大学计算机科学研究生,瑞尔森大学计算机科学硕士申请.pdf
  7. springboot+Vue+Elementui医院网上预约挂号系统java项目
  8. iOS Presenting view controllers on detached view controllers is discouraged
  9. Matlab根据excel数据画图
  10. 104.android 简单的检查小米、华为、OPPO、VIVO手机系统是否打开通话自动录音功能,跳转通话录音页面,安卓怎么检查开启通话自动录音,安卓开启自动录音