zoukankan      html  css  js  c++  java
  • hdu4433 locker

    暴力dp。。

    dp[i][j][k] 表示 前i位完全匹配 j 表示i+1位 k表示i+2位 

    枚举j k


    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #include<string>
    using namespace std;
    
    char s1[1005],s2[1005];
    int dp[1005][10][10];
    
    int main()
    {
        int len,d1,d2,i,j,k,x,y;
        while(~scanf("%s%s",s1,s2))
        {
            len=strlen(s1);
            memset(dp,0x3f,sizeof dp);
            dp[0][0][0]=0;
            for(i=0;i<len;i++)
            {
                for(j=0;j<10;j++)//枚举i+1位
                {
                    for(k=0;k<10;k++)//i+2位
                    {
                        d1=(s2[i]-s1[i]-j+20)%10;//向上
                        d2=(10-d1)%10;//向下
                        for(x=0;x<=d1;x++)
                            for(y=0;y<=x;y++)
                                dp[i+1][(k+x)%10][y]=min(dp[i][j][k]+d1,dp[i+1][(k+x)%10][y]);
                        for(x=0;x<=d2;x++)
                            for(y=0;y<=x;y++)
                                dp[i+1][(k-x+10)%10][(10-y)%10]=min(dp[i][j][k]+d2,dp[i+1][(k-x+10)%10][(10-y)%10]);
                    }
                }
            }
            printf("%d
    ",dp[len][0][0]);
        }
        return 0;
    }
    


  • 相关阅读:
    数组的排序
    2017-2018学年实习心得
    2017-2018学年实习总结
    古人警句
    课程意见
    第二次冲刺第十天
    第二次冲刺第九天
    第二次冲刺第八天
    第二天冲刺第七天
    第二次冲刺第六天
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3268660.html
Copyright © 2011-2022 走看看