HDU 4433 (DP)
来源:互联网 发布:mac usb转接口驱动 编辑:程序博客网 时间:2024/06/08 02:26
/*dp[i][j][k]表示第i个数之前的数全部匹配,第i+1上变化了j,i+2上变化了k的最小值*/#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <vector>using namespace std;typedef long long LL;const int maxn = 1007;const int INF = 0x3f3f3f3f;char s1[maxn], s2[maxn];int dp[maxn][11][11];int main() { while(~scanf("%s%s", s1, s2)) { int len = strlen(s1); for(int i = 0; i <= len; ++i) for(int j = 0; j < 10; ++j) for(int k = 0; k < 10; ++k) dp[i][j][k] = INF; dp[0][0][0] = 0; for(int i = 0; i < len; ++i) { for(int j = 0; j < 10; ++j) { for(int k = 0; k < 10; ++k) { int tmp = (s2[i]-s1[i]-j+20)%10; for(int a = 0; a <= tmp; ++a) { for(int b = 0; b <= a; ++b) { dp[i+1][(a+k)%10][b] = min(dp[i][j][k]+tmp, dp[i+1][(a+k)%10][b]); } } tmp = 10-tmp; for(int a = 0; a <= tmp; ++a) { for(int b = 0; b <= a; ++b) { dp[i+1][(10-a+k)%10][(10-b)%10] = min(dp[i][j][k]+tmp, dp[i+1][(10-a+k)%10][(10-b)%10]); } } } } } printf("%d\n", dp[len][0][0]); }}
0 0
- dp hdu-4433 locker
- [HDU 4433]locker[DP]
- hdu 4433 locker(DP)
- HDU 4433 (DP)
- hdu 4433 Locker dp
- HDU 4433 DP
- hdu 4433 字符串变化 DP
- hdu 4433 locker(DP)
- HDU 4433 locker (线性dp)
- HDU 4433 locker(三维dp)
- HDU 4433 locker(DP)
- hdu 4433(uva1631) - Locker - dp
- Hdu 4433 locker【思维+Dp】
- HDU DP
- DP? HDU
- DP? HDU
- DP? HDU
- 【dp】HDU
- 20160811多校:(hdu5821 Ball)【贪心+排序】
- PHP编程效率的20个要点
- Linux下I/O多路转接之epoll(绝对经典)
- 关于易宝支付第三方接口的实现
- cvtColor不是cv的成员
- HDU 4433 (DP)
- javascript 转换 \ 为 \\
- poj 3009 Curling 2.0(冰壶 直到遇到障碍才停下 dfs)
- JZOJ 4680 自然数【NOIP2016提高A组8.11】
- 如何删除Oracle数据库中的某一用户名下全部的表
- 欢迎使用CSDN-markdown编辑器
- uiautomator(android-sdk)界面自动化测试+eclipse的使用
- UIButton on the UIScrollView highlighted delay
- java序列化(transient和static修饰的变量的序列化实现)