博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 11584 最短回文串划分 DP
阅读量:6254 次
发布时间:2019-06-22

本文共 1018 字,大约阅读时间需要 3 分钟。

UVA的OJ登不上去, 所以只能简述一下题意。。。。

题目大意:

  输入一个字符串, 求该字符串最少能够划分成几个回文串?

解题思路:

  这道题是刘汝佳紫书上的一道题, dp专题, 首先写一个判断是不是回文串的函数, dp转移方程是dp[i] = min{ i+1, dp[j-1]+1(j~i为回文串) }。

题目代码:

  

#include 
#include
#include
#include
using namespace std;char a[100];int dp[100];bool isPalind( int j, int i ) { while( j < i ) { if( a[j] != a[i] ) return false; j++; i--; } return true;}int main() { scanf( "%s", a ); int len = (int)strlen( a ); for( int i = 0; i < len; i++ ) { dp[i] = i + 1; for( int j = 0; j < i; j++ ) { if( isPalind( j, i ) ) { dp[i] = min( dp[i], dp[j-1] + 1 ); } } } for( int i = 0; i < len; i++ ) { cout << dp[i] << " "; } cout << endl;}
View Code

  最近狂整DP啊,因为我发现有的时候最重要的并不是代码能力, 而是思维, 做算法的脑子一定要活, 所以我以后要狂整动态规划, 然后多学习数学, 先把思维练上来的再提高代码能力, 毕竟一道题你代码能力再强, 想不出来也是白搭。 

 

转载于:https://www.cnblogs.com/FriskyPuppy/p/5986645.html

你可能感兴趣的文章
框架学习笔记:Unity3D的MVC框架——StrangeIoC
查看>>
Android NumberPicker 修改分割线颜色和高度及字体颜色大小
查看>>
树莓派键盘布局修正
查看>>
Android之Http通信——3.Android HTTP请求方式:HttpURLConnection
查看>>
hdu 5071 Chat(模拟)
查看>>
【转】 测试人员的职业规划 --整理标注
查看>>
C++智能指针--weak_ptr
查看>>
struts2的坑以及tomcat的一些常识
查看>>
HDURevenge of Segment Tree(第二长的递增子序列)
查看>>
Json数组操作小记 及 JSON对象和字符串之间的相互转换
查看>>
Linux服务器时间相关命令记录
查看>>
常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服...
查看>>
视频支持拖动进度条播放的实现(基于nginx)
查看>>
图文详解AO打印(端桥模式)(转)
查看>>
安装 directx sdk 出现 S1023 解决
查看>>
BZOJ2037: [Sdoi2008]Sue的小球(区间DP)
查看>>
Git-命令行-删除本地和远程分支
查看>>
SUPERSOCKET.CLIENTENGINE 简单使用
查看>>
第 7 章 异步输入输出
查看>>
ASP.NET应用使用Nginx做负载均衡遇到的一个问题
查看>>