zoukankan      html  css  js  c++  java
  • HDU 5903 (DP)

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int maxn = 1e3+5;
    int dp[maxn][maxn];
    char s1[maxn];
    char p[maxn];
    int main()
    {
        int T;cin>>T;
        while(T--)
        {
            int n,m;
            scanf("%d %d",&n,&m);
            scanf("%s",s1); //dp[i][j],i表示当前位置,j表示当前花费是否合法。
            memset(dp,0,sizeof(dp));
            dp[n/2][0] = 1;
            for(int i=n/2;i>=0;i--)
            {
                if(s1[i]==s1[i+n/2])
                {
                    for(int j=m;j>=0;j--)
                    {
                        if(dp[i+1][j]) dp[i][j] = 1; //不改
                    }
                    for(int j=m;j>=2;j--)
                    {
                        if(dp[i+1][j-2]) dp[i][j] = 1; //改两次
                    }
                }
                else
                {
                    for(int j=m;j>=1;j--)
                    {
                        if(dp[i+1][j-1]) dp[i][j] = 1; //改一次
                    }
                    for(int j=m;j>=2;j--)
                    {
                        if(dp[i+1][j-2]) dp[i][j] = 1; //改两次
                    }
                }
            }
            if(!dp[0][m])
            {
                printf("Impossible
    ");
                continue;
            }
            for(int i=0;i<n/2;i++)
            {
                for(int j=0;j<26;j++)
                {
                    int count1 = 0;
                    char now = j+'a';
                    if(now!=s1[i]) count1++;
                    if(now!=s1[i+n/2]) count1++;
                    if(dp[i+1][m-count1])
                    {
                        p[i] = j+'a';
                        p[i+n/2] = j+'a';
                        m = m-count1;
                        break;
                    }
                }
            }
            p[n] = '';
            printf("%s
    ",p);
        }
        return 0;
    }
  • 相关阅读:
    1 let和const
    ECMAScript 6 扫盲
    回溯法
    13. Ajax技术
    12.JSTL标签
    11.EL(表达式语言)
    10.正则表达式(未完成)
    博客园自定义样式
    9.一次简单的Web作业
    8.JavaScript
  • 原文地址:https://www.cnblogs.com/littlepear/p/5919588.html
Copyright © 2011-2022 走看看