还是回文
时间限制:2000 ms | 内存限制:65535 KB
难度:3
描述
判断回文串很简单,把字符串变成回文串也不难。现在我们增加点难度,给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费。那么,将字符串变成回文串的最小花费是多少呢?
输入多组数据
第一个有两个数n,m,分别表示字符的种数和字符串的长度
第二行给出一串...
分类:
其他好文 时间:
2014-11-10 23:26:14
阅读次数:
242
给定一个串,分割该串,使得每个子串都是回文串。找出所有可能的组合。
方法:暴搜+回溯
class Solution {
public:
int *b,n;
vector >ans;
void dfs(int id,string &s,int len){
if(id>=n){
if(len>0){
vectorvt;
vt.push_back(s.substr(0...
分类:
其他好文 时间:
2014-11-09 11:18:19
阅读次数:
174
POJ 1159 Palindrome(字符串变回文:LCS)
http://poj.org/problem?id=1159
题意:
给你一个字符串, 问你做少需要在该字符串中插入几个字符能是的它变成一个回文串.
分析:
首先把原字符串和它的逆串进行匹配, 找出最长公共子序列. 那么最长公共子序列的字符串肯定是一个回文串. 所以原串剩下的部分是不构成回文的. 我们只需要添加剩下部分的字符到对应位置, 原串自然就变成了一个回文.
所以本题的解为: n 减去 (原串与逆...
分类:
其他好文 时间:
2014-11-04 13:12:12
阅读次数:
116
输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同。如abba和yyxyy。在判断时,应该忽略所有标点符号和空格,且忽略大小写,但输出应保持原样(在回文串的首部和尾部不要输出多余字符)。输入字符串长度不超过5000,且占据单独的一行。应该输出最长的回文串,如果有多个,输出起始位置最靠左的。
样例输入:Confuciuss ...
分类:
编程语言 时间:
2014-11-02 18:19:12
阅读次数:
168
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=27&page=show_problem&problem=2549设w[i,j]为i-j能分割成的最少回文串f[i]为前i个字符能够分成的最少回...
分类:
其他好文 时间:
2014-11-02 14:57:40
阅读次数:
159
这个题是走弯路了,刚开始自己DP出了方程,无限MLE,唉
if(s1[i]==s1[j])
dp[i][j]=dp[i+1][j-1];
else dp[i][j]=min(dp[i][j-1],dp[i+1][j]) +1;
后来百度了一下,这个原来是个经典回文串问题,即先将串置反,然后求LCS........
然后就是这题卡时间卡的特别厉害,多用了一次strlen就TLE...
分类:
其他好文 时间:
2014-11-01 16:23:19
阅读次数:
146
Problem Description“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。Input输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。Output如果一...
分类:
其他好文 时间:
2014-10-27 14:06:44
阅读次数:
176
题目地址:Ural 1635
又是输出路径的DP。。。连着做了好多个了。。
状态转移还是挺简单的。要先预处理出来所有的回文串,tag[i][j]为1表示字符串i--j是一个回文串,否则不是回文串。预处理时要用n^2的方法,即枚举回文串中间,可以分奇数和偶数两种分别求一次。
然后dp转移方程为,若tag[j][i]==1,dp[i]=min(dp[i],dp[j-1]+1);
对于最令人讨厌...
分类:
其他好文 时间:
2014-10-23 22:46:34
阅读次数:
295
题目详情:Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的全部回文数。如今给定一个闭区间[a,b],求这个区间里有多少个回文数。比方[20,30],仅仅有一个回文数那就是22.输入描写叙述: 输入包括多组測试数据,每组測试数据包括两个整数a,b,(0#include using nam...
分类:
其他好文 时间:
2014-10-22 21:34:06
阅读次数:
161