hdu4433 locker

1291 단어 Lock
폭력
pp[i][j][k]는 전 i위가 완전히 일치하는 것을 나타낸다. j는 i+1위 k는 i+2위를 나타낸다.
매거 jk
 
#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; }

 

좋은 웹페이지 즐겨찾기