hdu 4433—— locker

来源:互联网 发布:aso优化方案模板 微盘 编辑:程序博客网 时间:2024/04/29 03:51

动态规划

#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define INF 1100000char s1[1100],s2[1100];int a[1100],b[1100],n;int dp[1100][10][10];void deal(){for(int i=1;i<=n;i++)a[i]=s1[i-1]-'0';for(int i=1;i<=n;i++)b[i]=s2[i-1]-'0';}int dfs(int ii,int xx,int yy ){if(ii<=1)return min((a[1]-yy+20)%10,(yy-a[1]+20)%10);if(dp[ii][xx][yy]!=-1)return dp[ii][xx][yy];dp[ii][xx][yy]=INF;int up=(yy-a[ii]+20)%10;for(int i=0;i<=up;i++)for(int j=0;j<=i;j++)dp[ii][xx][yy]=min(dp[ii][xx][yy],dfs(ii-1,(b[ii-2]-j+20)%10,(xx-i+20)%10)+up);int down=10-up;for(int i=0;i<=down;i++)for(int j=0;j<=i;j++)dp[ii][xx][yy]=min(dp[ii][xx][yy],dfs(ii-1,(b[ii-2]+j+20)%10,(xx+i+20)%10)+down);return dp[ii][xx][yy];}int main(){while(cin>>s1>>s2){n=strlen(s1);deal();memset(dp,-1,sizeof(dp));printf("%d\n",dfs(n,b[n-1],b[n]));}return 0;} 


原创粉丝点击