uva 11584 - 字符串 dp
题目链接
一个长度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相关推荐
- [OI]字符串DP小结
顾名又思义,是在字符串上进行的DP操作.因为字符串本身可以看作是一个序列,所以有些时候字符串DP可以用区间DP来解决. P2246 SAC#1 - Hello World(升级版) 题目描述 在讲义的 ...
- java字符串匹配dp_[OI]字符串DP小结
顾名又思义,是在字符串上进行的DP操作.因为字符串本身可以看作是一个序列,所以有些时候字符串DP可以用区间DP来解决. P2246 SAC#1 - Hello World(升级版) 题目描述 在讲义的 ...
- [BZOJ2121]-字符串游戏-字符串dp
说在前面 觉得字符串dp都很神 题目 BZOJ2121传送门 看题可戳传送门 解法 首先me是看了dp定义才会做这道题的 这题-.me貌似写不出来思维过程,只能把做法说一说了,可能相关题目做多了之后会 ...
- 魔法串 HDU - 4545(字符串dp)
小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心 ...
- UVA 11584 Partitioning by Palindromes (字符串区间dp)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)
题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串,字符串长度不超过1000. 分析: 1.dp[i]为字符0~i划分成的最小回文串的个数. 2.dp[j] = Min(dp[j ...
- 回文串 --- 动态dp UVA 11584
题目链接: https://cn.vjudge.net/problem/34398/origin 本题的大意其实很简单,就是找回文串,大致的思路如下: 1. 确定一个回文串,这里用到了自定义的chec ...
- 【UVa】【DP】1633 Dyslexic Gollum
UVa 1633 Dyslexic Gollum 题目 ◇题目传送门◆(由于UVa较慢,这里提供一份vjudge的链接) ◇题目传送门(vjudge)◆ 题目大意 输入正整数N,KN,KN,K,求长度 ...
- uva 11584——Partitioning by Palindromes
题意:给定一个字符串,把该字符串划分为最少的回文串. 思路:dp,到达i点的回文串长度都存起来,那么dp[i]=min(以i为结尾的最短的回文串长度). code: #include <bits ...
最新文章
- android 多个应用,Android中一个应用实现多个图标的几种方式
- 程序从技术到管理:思维转变是关键
- JQuery 样式设置、追加、移除与切换
- Linux shell重复执行某命令n次
- ld-linux.so.2 重定向,2-Linux重定向和管道、Shell编程.doc
- 100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络
- java map用二叉树_【课堂笔记分享】linkedlist、二叉树、hashmap
- 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城
- 多因子策略介绍与应用
- Symfony2插件FOSUserBundle的使用说明
- 让你的MSN更精彩!聊天伴侣小i机器人试用体验
- linux系统安装详细教程
- 职称计算机word中文字处理,职称计算机Word2003中文字处理考试大纲
- 又踩坑之16G的大avi文件的删除
- 由于CredSSP加密数据库修正
- java计算机毕业设计springboot+vue度假山庄酒店管理系统
- 小米有品多个商品主图、细节图怎样快速分类保存
- 给Ubuntu系统清理垃圾
- BI神器Power Query(6)-- PQ从工作簿导入数据(2/2)
- IMAX探索VR产业,欲再造电影业传奇!