UVA 10617 - Again Palindrome
2012-10-25 13:18
169 查看
DP,
题目大意:给出一个字符串,可以去掉任意位置的字符,要求出共有多少种方法能使它变成回文串
思路分析: dp[i][j]表示第i个字符和第j个字符之间的回文串个数,
若s[i]==s[j],那么
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]+dp[i+1][j-1]+1;
化简后即为:dp[i][j]=dp[i+1][j]+dp[i][j-1]+1;
若s[i]!=s[j]
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1];
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
using namespace std;
char s[70];
long long dp[70][70];
int main()
{
//freopen(\"in.txt\",\"r\",stdin);
int n;
cin>>n;
while(n--)
{
memset(dp,0,sizeof dp);
cin>>s;
int len=strlen(s);
for(int i=0; i<len; i++)
dp[i][i]=1;
for(int i=len-1; i>=0; i--)
for(int j=0; j<len; j++)
if(i<=j)
{
if(s[i]==s[j])
dp[i][j]=dp[i+1][j]+dp[i][j-1]+1;
else
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1];
}
cout<<dp[0][len-1]<<endl;
}
return 0;
}
题目大意:给出一个字符串,可以去掉任意位置的字符,要求出共有多少种方法能使它变成回文串
思路分析: dp[i][j]表示第i个字符和第j个字符之间的回文串个数,
若s[i]==s[j],那么
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]+dp[i+1][j-1]+1;
化简后即为:dp[i][j]=dp[i+1][j]+dp[i][j-1]+1;
若s[i]!=s[j]
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1];
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
using namespace std;
char s[70];
long long dp[70][70];
int main()
{
//freopen(\"in.txt\",\"r\",stdin);
int n;
cin>>n;
while(n--)
{
memset(dp,0,sizeof dp);
cin>>s;
int len=strlen(s);
for(int i=0; i<len; i++)
dp[i][i]=1;
for(int i=len-1; i>=0; i--)
for(int j=0; j<len; j++)
if(i<=j)
{
if(s[i]==s[j])
dp[i][j]=dp[i+1][j]+dp[i][j-1]+1;
else
dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1];
}
cout<<dp[0][len-1]<<endl;
}
return 0;
}
相关文章推荐
- uva_10617_Again Palindrome(普通DP, 记忆化搜索)
- UVA 题目10617 - Again Palindrome(区间DP)
- UVA - 10617 Again Palindrome
- uva 10617 Again Palindrome
- UVa 10617 Again Palindromes / 记忆化搜索
- UVA - 10617 Again Palindrome
- UVa 10617 Again Palindrome(回文串区间DP)
- uva 10617 Again Palindromes(DP)
- uva 10617
- uva10617 - Again Palindrome(记忆化搜索)
- uva 10617
- Again Palindromes - UVa 10617 dp
- UVa 10617 Again Palindrome(经典回文串区间DP)
- Uva 10617 Again Palindromes
- uva 10617(dp)
- uva 10617
- UVa 10617 - Again Palindrome
- UVA - 10617 Again Palindrome 字符串的回文子串
- uva10617 - Again Palindrome(dp)
- UVA 10617 区间DP