Light OJ 1033 - Generating Palindromes
来源:互联网 发布:php文章分页 编辑:程序博客网 时间:2024/04/29 08:16
题目大意:
给你一个字符串,问最少添加多少个字符,使原字符串变成回文串
思路:
回文串的性质是倒过来两者一样, 那么有这个性质可知, 设原始字符串为a,原始字符串颠倒过来的字符串为b, 那么求a和b的最长公共子序列, 字符串a的长度减去最长公共自序列的长度不就是最少添加的字符!
代码如下:
#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll N = 107;char a[N], b[N];int dp[N][N];void solve(){ scanf(" %s",a); int len = (int)strlen(a); for(int i=0; i<len; i++) b[len-1-i] = a[i]; memset(dp, 0, sizeof(dp)); for(int i=0; i<len; ++i) { for(int j=0; j<len; ++j) { if(a[i] == b[j]) dp[i+1][j+1] = dp[i][j] + 1; else dp[i+1][j+1] = max(dp[i][j+1], dp[i+1][j]); } } printf("%d\n",len - dp[len][len]);}int main(){ int T; scanf("%d",&T); for(int i=1; i<=T; i++) { printf("Case %d: ", i); solve(); } return 0;}
0 0
- Light OJ 1033 - Generating Palindromes
- light oj 1033 - Generating Palindromes (区间dp)
- light oj 1033 - Generating Palindromes (区间DP)
- light oj 1033 - Generating Palindromes (LCS)
- light oj 1033 - Generating Palindromes 【LCS】
- Light oj 1033 - Generating Palindromes(区间dp)
- Light OJ:1033 Generating Palindromes(LCS+回文字符串)
- Light OJ 1033 Generating Palindromes (最长回文子串 区间DP)
- LightOJ 1033 - Generating Palindromes
- LightOJ 1033 - Generating Palindromes
- LightOJ 1033 Generating Palindromes
- LightOJ-1033-Generating Palindromes
- light oj 1258 - Making Huge Palindromes(KMP)
- light OJ 1258 - Making Huge Palindromes【Manacher】
- LightOJ 1033 - Generating Palindromes 【区间DP】
- LightOJ - 1033 Generating Palindromes(区间DP)
- LightOJ 1033 - Generating Palindromes(dp)
- LightOJ 1033 - Generating Palindromes (区间dp)
- 利用urllib从ks5u下载2016高考真题
- mysql集群
- 广播机制详解——监听短信到来的广播
- Sudo
- 在wamp的环境下配置虚拟域名
- Light OJ 1033 - Generating Palindromes
- JDBC批处理、事务、自动增长、大文本
- cvWriteFrame 写入一帧到一个视频文件中
- Java中Runnable和Thread的区别
- 消息推送业务逻辑处理 “MessageUI”
- C++之getch(),getche(),getchar()的区别
- LeetCode-345.Reverse Vowels of a String
- 编译原理—递归下降分析
- 希尔排序