博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 11584 - Partitioning by Palindromes [动规]
阅读量:4982 次
发布时间:2019-06-12

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

题意:给定一个字符串,判断能划分成尽量少的回文串的数量。

dp[i]代表的状态为字符串前i个字符所能划分成的最少回文串的数量。判断回文串可以用递归来判断。

#include 
#include
#include
#include
using namespace std;char str[1024];int dp[1024];const int inf = 0x7f7f7f7f;bool is_ok(const int l, const int r){ if(l >= r) return true; return str[l] == str[r] && is_ok(l + 1, r - 1);}int main(){ int T; cin >> T; while(T--){ scanf("%s", str + 1); int len = strlen(str + 1); memset(dp, inf, sizeof(dp)); dp[0] = 0; for(int i = 1; i <= len; ++i){ for(int j = 0; j < i; ++j){ if(is_ok(j+1, i)) dp[i] = min(dp[i], dp[j] + 1); } } cout << dp[len] << endl; } return 0;}

转载于:https://www.cnblogs.com/kunsoft/p/5312674.html

你可能感兴趣的文章
pager-taglib2.0中文传参乱码问题
查看>>
人生不可破的28个天规
查看>>
Protel文件转PADS文件
查看>>
C#中的变量声明
查看>>
iframe中跨域页面访问parent的方法
查看>>
curl实现多路并发请求(请求数量大时再次分割实现循环处理)
查看>>
调查问卷心得体会
查看>>
Linux文件3个时间点(access time,modify time,change time)
查看>>
深谈德国车和日本车的区别--觉得分析的还算冷静客观
查看>>
C#命名空间
查看>>
poj1655Multiplication Puzzle
查看>>
WinDebug 常用命令表【摘】
查看>>
LVS _keepalived 配置
查看>>
Django之ORM基础
查看>>
JS监听浏览器关闭事件
查看>>
[Log]ASP.NET之HttpModule 事件执行顺序
查看>>
明天回老家看我儿子了!
查看>>
hdu2089(数位dp模版)
查看>>
JS 获取浏览器和屏幕宽高信息
查看>>
TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
查看>>