题目链接

一个长度1000的字符串最少划分为几个回文字符串

-----------------------------------------------------------------------------------------------------------------

想复杂了。

首先N2的时间预处理一下,从i开始长度为len的字符串是否为回文串。

dist(i) = MIN(dist(i),dist(j)+1) 如果 j-i 为一个回文串

#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cmath>
#include <vector>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>#define MAX(a,b) ((a)>=(b)?(a):(b))
#define MIN(a,b) ((a)<=(b)?(a):(b))
#define OO 0x0fffffff
using namespace std;
typedef long long LL;
const int N = 1024;
bool dp[N][N];
int minDist[N];
char str[N];
int main(){int n; for(cin>>n;n--;){scanf("%s",str); int length = strlen(str);for(int i=0;i<length;i++) minDist[i] = i+1;memset(dp,false,sizeof(dp));for(int len=0;len<2;len++) for(int i=0;i<length;i++) {dp[len][i]=true;}for(int len=2;len<=length;len++){for(int i=0;i<length;i++){if(len+i>length) break;dp[len][i] = (str[i]==str[i+len-1])&&(dp[len-2][i+1]);}}for(int i=1;i<length;i++){for(int j=0;j<=i;j++){if(dp[i-j+1][j]) minDist[i] = MIN(minDist[i],j?(minDist[j-1]+1):1);}}printf("%d\n",minDist[length-1]);}return 0;
}/*
3
racecar
fastcar
aaadbccb
*/

转载于:https://www.cnblogs.com/redips-l/p/7668366.html

uva 11584 - 字符串 dp相关推荐

  1. [OI]字符串DP小结

    顾名又思义,是在字符串上进行的DP操作.因为字符串本身可以看作是一个序列,所以有些时候字符串DP可以用区间DP来解决. P2246 SAC#1 - Hello World(升级版) 题目描述 在讲义的 ...

  2. java字符串匹配dp_[OI]字符串DP小结

    顾名又思义,是在字符串上进行的DP操作.因为字符串本身可以看作是一个序列,所以有些时候字符串DP可以用区间DP来解决. P2246 SAC#1 - Hello World(升级版) 题目描述 在讲义的 ...

  3. [BZOJ2121]-字符串游戏-字符串dp

    说在前面 觉得字符串dp都很神 题目 BZOJ2121传送门 看题可戳传送门 解法 首先me是看了dp定义才会做这道题的 这题-.me貌似写不出来思维过程,只能把做法说一说了,可能相关题目做多了之后会 ...

  4. 魔法串 HDU - 4545(字符串dp)

    小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心 ...

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

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

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

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

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

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

  8. 【UVa】【DP】1633 Dyslexic Gollum

    UVa 1633 Dyslexic Gollum 题目 ◇题目传送门◆(由于UVa较慢,这里提供一份vjudge的链接) ◇题目传送门(vjudge)◆ 题目大意 输入正整数N,KN,KN,K,求长度 ...

  9. uva 11584——Partitioning by Palindromes

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

最新文章

  1. android 多个应用,Android中一个应用实现多个图标的几种方式
  2. 程序从技术到管理:思维转变是关键
  3. JQuery 样式设置、追加、移除与切换
  4. Linux shell重复执行某命令n次
  5. ld-linux.so.2 重定向,2-Linux重定向和管道、Shell编程.doc
  6. 100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络
  7. java map用二叉树_【课堂笔记分享】linkedlist、二叉树、hashmap
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城
  9. 多因子策略介绍与应用
  10. Symfony2插件FOSUserBundle的使用说明
  11. 让你的MSN更精彩!聊天伴侣小i机器人试用体验
  12. linux系统安装详细教程
  13. 职称计算机word中文字处理,职称计算机Word2003中文字处理考试大纲
  14. 又踩坑之16G的大avi文件的删除
  15. 由于CredSSP加密数据库修正
  16. java计算机毕业设计springboot+vue度假山庄酒店管理系统
  17. 小米有品多个商品主图、细节图怎样快速分类保存
  18. 给Ubuntu系统清理垃圾
  19. BI神器Power Query(6)-- PQ从工作簿导入数据(2/2)
  20. IMAX探索VR产业,欲再造电影业传奇!

热门文章

  1. 利用php的方法进行图片尺寸修改和储存
  2. ai人工智能的本质和未来_是人工智能手中网络安全的未来AI 3
  3. java 对象序列化工具类
  4. [51nod1676]无向图同构
  5. Github图床搭建和使用(带CDN加速)
  6. Java volatile关键字总结
  7. 猜一下淘口令如何适配iOS14的
  8. 女生是否适合学软件开发?
  9. SQL 增删改查(详细)
  10. 计算机内部采用的传输方式串行,下列哪一种传输方式被用于计算机内部的数据传输...