码迷,mamicode.com
首页 > 其他好文 > 详细

hdu4632 回文子序列

时间:2020-03-06 20:11:16      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:==   分析   php   区间   its   pid   span   技术   open   

题:http://acm.hdu.edu.cn/showproblem.php?pid=4632

题意:问字符串的有多少个回文子序列(n<=10000)

分析:区间dp,考虑dp[i][j]表示i~j 位置含有多少个回文子序列,转移方程如代码

技术图片
#include<bits/stdc++.h>
using namespace std;
const int M=1e3+3;
const int mod=10007;
int dp[M][M];
char s[M];
int main(){
    int t;
    scanf("%d",&t);
    for(int p=1;p<=t;p++){
        scanf("%s",s);
        int n=strlen(s);
        memset(dp,0,sizeof(dp));
        for(int i=0;i<n;i++)
            dp[i][i]=1;
        for(int i=0;i<n;i++)
            for(int j=i-1;j>=0;j--){
                dp[j][i]=(dp[j+1][i]+dp[j][i-1]-dp[j+1][i-1]+mod)%mod;
                if(s[i]==s[j])
                    dp[j][i]+=dp[j+1][i-1]+1;
                dp[j][i]%=mod;
            }
        printf("Case %d: %d\n",p,dp[0][n-1]);
    }
    return 0;
}
View Code

 

hdu4632 回文子序列

标签:==   分析   php   区间   its   pid   span   技术   open   

原文地址:https://www.cnblogs.com/starve/p/12430195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!