uva11584
2016-04-16 16:26
218 查看
题目大意:
给出一个字符串,问最少可以分成几个回文串
思路:
直接枚举出左边界和右边界然后判断两个边界之间是否可以有回文串,然后DP选择出一个较小的。详细见代码。
代码:
给出一个字符串,问最少可以分成几个回文串
思路:
直接枚举出左边界和右边界然后判断两个边界之间是否可以有回文串,然后DP选择出一个较小的。详细见代码。
代码:
#include <iostream> using namespace std; #include <cstring> #include <stdio.h> char s[1010]; int f[1010]; bool check(int l,int r) { for(int i = l,j = r ; i < r; i++,j--) { if(s[i] != s[j]) return false; } return true; } int main() { int kase; scanf("%d",&kase); while(kase--) { scanf("%s",s); int len = strlen(s); memset(f,0,sizeof(f)); for(int i = 0; i < len; i++) { f[i] = i + 1; for(int j = 0; j <= i; j++) { if(check(j,i)) { f[i] = min(f[i],f[j - 1] + 1); } } } printf("%d\n",f[len - 1]); } return 0; }
相关文章推荐
- linux下运行eclipse出错的解决方法
- ACM-2008 数值统计
- 【USACO题库】3.3.3 Camelot亚瑟王的宫殿
- 响应式设计
- 题目1002:Grading
- Activity的生命周期和启动模式
- sql server 数据库mdf与ldf文件的导入
- Qt应用程序自动重启(零零散散)
- linux常用命令
- nyoj 63 小猴子下落(二叉树)
- 判断平年闰年
- struct和typedef struct的区别
- 大脑的惰性
- 【学习 OpenCV】—— 色彩空间(RGB、HSV、rgb2hsv、rgb2gray 的实现)
- Linux启动过程详解
- 学习Javascript闭包(Closure)
- mybatis 关联sql查询
- nginx lvs haproxy负载优缺点比较
- position+opacity组合制作图片淡入淡出效果
- bzoj 2962: 序列操作 线段树