[DP] UVA11548
来源:互联网 发布:北师大网络教育登录 编辑:程序博客网 时间:2024/06/08 06:14
找出一段字符串中最少数量的回文串划分
dp[ i ] = min ( dp[ i ], dp[ j - 1 ] + 1 )
DP还是写不出来状态转移
虽然知道是根据已知的来求未知的。。。
但依旧找不到正确的应该求的量和之间的状态转移方程(绝望脸233333)
#include <cstdio>#include <cstring>#include <iostream>using namespace std;char str[ 1009 ];int dp[ 1009 ]; //前i个字符中分段的数量//判断j到i之间是否是回文数bool palindrom ( int x, int y ) { while ( x < y ) { if ( str[ x ] != str[ y ] ) return false; ++x; --y; } return true;}int main () { int t; scanf ( "%d", &t ); while ( t-- ) { scanf ( "%s", str + 1 ); int len = strlen ( str + 1 ); memset ( dp, 0, sizeof ( dp ) ); for ( int i = 1; i <= len; i++ ) { dp[ i ] = i; for ( int j = 1; j <= i; j++ ) { if ( palindrom ( j, i ) ) dp[ i ] = min ( dp[ i ], dp[ j - 1 ] + 1 ); } } printf ( "%d\n", dp[ len ] ); } return 0;}
阅读全文
0 0
- [DP] UVA11548
- UVA11548 DP计算添加多少元素可以构成回文字符串
- dp
- dp
- dp
- 【DP】
- dp
- dp
- DP
- DP
- DP
- DP
- DP
- dp
- DP
- dp
- DP
- DP
- 异步加载和延迟加载
- 原创作品 | 盘搜搜-极速搜索你想要的一切资源-爬虫学习项目总结
- day03 JavaScript
- 前端面试题
- poj2374 Fence Obstacle Course(线段树+建图spfa)
- [DP] UVA11548
- C++之过载函数
- Hive之 hive-1.2.1 + hadoop 2.7.4 集群安装
- HDU
- java作业4
- YTU.1989: 打印直角三角形
- 输出连续相同的子数组
- 4865fa85d9ee28bfab97d073a3dde8a3 病毒分析
- Mac 上安装配置jdk