51nod 1154 回文串划分
来源:互联网 发布:电脑版淘宝网站 编辑:程序博客网 时间:2024/05/16 06:34
想了好久,突然看到了话题是动态规划,就明白了。
先n^2预处理出来以每个字符结尾的回文串。然后动规,对于每一个字符,要么自成一家,要么接在前面的字符上。
#include<cstdio>#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;string s;vector<int> a[5050];int f[5050];int main(){ cin >> s; int len = s.length(); for(int i = 0; i < len; i++){ int l = i, r = i; int tot; while(l >= 0 && r < len && s[l] == s[r]){ a[r].push_back(l); l--, r++; } } for(int i = 0; i < len; i++){ int l = i, r = i + 1; while(l >= 0 && r < len && s[l] == s[r]){ a[r].push_back(l); l--, r++; } } f[0] = 1; for(int i = 1; i < len; i++){ f[i] = f[i - 1] + 1; for(int j = 0; j < a[i].size(); j++){ int t = a[i][j]; if(t == 0) f[i] = 1; else f[i] = min(f[i], f[t - 1] + 1); } } printf("%d\n", f[len - 1]); return 0;}
阅读全文
0 0
- 51nod 1154 回文串划分 (DP)
- 51nod 1154:回文串划分
- 51nod 1154 回文串划分
- 51Nod 1154 回文串划分
- 51 Nod 1154 回文串划分
- 51nod 1154 回文串划分
- 【dp】51nod 1154 回文串划分
- 51nod-1154-回文串划分
- 【51nod】1154 回文串划分
- 51nod 1154 回文串划分
- 51nod 1154回文串划分 dp+递推
- 51Nod-1154-回文串划分
- 【51Nod】1154 - 回文串划分(dp)
- 51NOD 1154 回文串划分 【DP+Manacher】
- 51nod 1154 回文串划分(dp)
- 1154 回文串划分
- 1154 回文串划分
- 51nod1154回文串划分
- Java:输入某年某月某日,判断这一天是这一年的第几天?
- 地下挖掘哪家强?机器小“獾”来帮忙
- Andfix源码分析
- Eclipse上如何安装git,及上传本地项目到github
- cocos2d-x lua如何去除多点触摸模式
- 51nod 1154 回文串划分
- .net面试题,各大企业常见的.net面试题及答案(精华)
- 图像基础8 图像分类——PCA 图像特征提取算法
- 解决SPSS中can not create java virtual machine问题
- 加载zip压缩的javascript代码以及在Egret H5实际应用
- 决策树实战项目-鸢尾花分类
- Eclipse查看Servlet源码
- 大神教你设置Linux进程的睡眠和唤醒
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式