CodeForces 245H (dp+回文串)

方程好想,关键回文串。
#include
#include
#include
#include
using namespace std;
char a[5005];
int dp[5005][5005];
int pp[5005][5005];
int main()
{
    int i,j,n,m,k;
    cin>>a;
    n=strlen(a);
    for(i=0;i=n)
                break;
            if(k==2&&a[i]==a[i+k-1])
                pp[i][i+k-1]=1;
            else{
                if(k>2&&pp[i+1][i+k-1-1]&&a[i]==a[i+k-1])
                    pp[i][i+k-1]=1;
            }
        }
    }
    for(i=0;i=n)
                break;
            j=i+k-1;
            dp[i][j]+=dp[i][j-1]+dp[i+1][j];
            if(i+1<=j-1)
                dp[i][j]-=dp[i+1][j-1];
            dp[i][j]+=pp[i][j];
        }
    }
    cin>>m;
    for(i=0;i

你可能感兴趣的:(动态规划)