uva 11584——Partitioning by Palindromes
题意:给定一个字符串,把该字符串划分为最少的回文串。
思路: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相关推荐
- 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 ...
- UVA 11584 Partitioning by Palindromes 动态规划 入门
这个题目的大意就是,给你一个字符串,然后让你求出最少的回文数.我开始傻逼了,写了一个o(n^3)的算法,结果老超时.然后略看了别人的题解,才知道有个如此的转移方程. f[i+1]=min(f[j]+1 ...
- UVA 11584—— Partitioning by Palindromes
题意:给定一个串,然后问最少可以分割成多少个回文串. 思路:简单dp,dp[i]=min(dp[j]+1,1<j<=i),两次循环扫一遍即可,考察dp的思想. code: #include ...
- UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)
整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...
- uva11584 Partitioning by Palindromes
题目大意: 给出一个字符串,把他划分成尽量少的回文串,问最少的回文串个数 /*先预处理所有回文子串dp[i]表示字符1~i划分成的最小回文串的个数 */ #include<iostream> ...
- 回文串 --- 动态dp UVA 11584
题目链接: https://cn.vjudge.net/problem/34398/origin 本题的大意其实很简单,就是找回文串,大致的思路如下: 1. 确定一个回文串,这里用到了自定义的chec ...
- uva 11584 - 字符串 dp
题目链接 一个长度1000的字符串最少划分为几个回文字符串 ---------------------------------------------------------------------- ...
- UVa在线比赛单题汇总-----DP专题
动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...
最新文章
- Cmake常用基本命令复习
- void什么意思python_python 为什么没有 void 关键字?
- Day10 Python基础之特殊函数(八)
- [Spring5]Spring框架概述
- 第一类修正贝塞尔函数的C语言实现
- oracle10g备份导入
- 【图说Word】怎么在word的每一行前面和后面加上同一个字或字符?
- 大型网站架构系列:缓存在分布式系统中的应用(三)
- Shiro系列-Authenticator和AuthenticationStrategy是什么
- 【NLP专栏】图解 BERT 预训练模型!
- 双人游戏根据胜负关系匹配
- 基于javaweb+jsp的户籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
- PS怎么用3D功能怎么用?如何用PS做立体字
- 2012蓝桥杯省赛真题 鲁卡斯序列
- ReactOS学习笔记--编译和调试
- MYSQL数据库到VUE前端架构
- 交互设计笔记(4)——理解用户:定性研究
- 智慧化工厂人员定位离我们有多远?苏州新导智能定位系统
- vba中定时器的用法
- python怎么安装bokeh_Python如何使用bokeh包和geojson数据绘制地图