Description

A multi-digit column addition is a formula on adding two integers written like this:

aaarticlea/webp;base64,UklGRg4FAABXRUJQVlA4TAIFAAAvm4EcAB6q2rYtkpxP7snUOdQR1BGULt22bbmSpUq2GtWqVJih1NAy74aT5d0SJQa+gaZw/WHmxE/cF5TLGGZmsMz4hBMHRdv/ts0P9jL/O+gE/xMYC4eamhkKCQoZGQV17yGU1b333m2GQMZPirVtbaY9cjbDHlgBK4hGx8bGIVFIVFRU1PReUK/BTP97L5ivvGLK039HbiQpUnoYbjOLqXmAkjf37Wb+3cy/Tek2dHbYNYDiKXtqROChO8XfwgRbtjr4xnoGgfQr5v/gCCpWsRDA5jPcjwJf7lO5Slc7y/PPSrYujcBMnPCpqIbAlS3iCiZYRTGfZB8C+w7KJ2nAR9RvDWsITBlJ66SzwjVcQUkRg/lk+85WBEW5Cjx8JP3mRUmOmxdNJF41ArctEldQUTpSsW16alCyiEGE+QPY1v+T74/Wzm9xjADEq9bW1goVnxqu9y1suPrjIDnlaRRgODQASKOze5wjw/1kK6oVZVLl6rjWPLz6HVakbIkpDpHFbgVw3ngR6bZtEeX3oAjle1kQhM9YnLKlRpR0BdtYdreyCmwalwUPfepDUoYotw1ZJsa3CxGOobXf2XH5Z9zA94Ez5omxNx4ibTkzM8u0UrxnEcQ2NZ2zzF7omDiKOxZfynCrbrtTrvdxs/+UL2VfcRhDl12MAk+FwSY2HdfcHWomycyKsIKn0lX/hm9MUxftk5otP8kXrb4wsE08FiBTgad8DzP7HJQtCPh64o4rxtEWu5WSNVsc7Zl5Y1BPBRXmo2yhGy5qfV9xebvt6UVJyO96gf2UFWn6/qL5F2q2pOWKojGo9p1PdQkDvgLln6bPt1Vj1TFB+d0r0cAykVbn3X2f6JPabfBs44VIr+/qB8zlqVd9sVHmP2s1ipWU3aF4T12cewGOK56o29J9N1wqg1HqN4u9KlfvzkXZAu/Oa6qSa8ezHZd/flIyWLlFhr+zPUR9ll+GUH1k/QsveIpAuhdeeCHMxuqE9HXc05Bo4cAvmand14ePVPVld1N2dUwq1ldSU6jPzuvXIpaff17cksChZY+H9+Xnn4tYJ75JPxO8/SyWlIWUhfGzEEPq0nlbml+OgYzVJXlqNmVfdmda4cndqUrtXinKFQP5b/iynLl18W8Rlwcakv/ddvmStozAVi3y1Kseon5/lwJNHNMxcYXTeOrdf+AuDxOsSJMAbftE+9ILXNUii/uTDfvmDFmb5oVnPxP4skVlCwMiCVkYLNFjTVRS2aIKT8VFb0ONqmTdFkdzZt64vNa+1yLKpjtVEmDtU321hvfizvv+PPFNbrLMyStHi+Z2rgriYuQmxyhfqkTcQ4+u4iYef5Y0YuZS6uKXiYvnba3IT4KI8Y0JJZQnxA306Cou7ifrsLbS9om3tbUeaDRxSN+JE+jRVTx29MDE+OVAYx6ZqRWrKBJTYBsvPivKhhPo7iqy4r1Ud4TiO3yr3+yojzy5+x6cQHdXEeAPUbNtlZSU3ZnKfL7CCXR3FQHSfdvEBez3SjSwC0U/2P+4g/++ee42mOCTWPwArE2zZdlxsT/vtodxAx1dxY4Mf8fvy0iAit+H5lNSTuedlAdcYaWrq6jfhKzlOp5GXbzPua+wOCU7r1acQI+uImT7bi5zX7MEnV5y/7EIiys8t627qwiPff8OkN95a5VRFCFyrf7Ke0V1FTelpxX73wF4sGjJ2v0/3ISPm/13s/8A" alt="" data-pagespeed-url-hash="3831660031" />

A multi-digit column addition is written on the blackboard, but the sum is not necessarily correct. We can erase any number of the columns so that the addition becomes correct. For example, in the following addition, we can obtain a correct addition by erasing the second and the forth columns.

aaarticlea/webp;base64,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" alt="" data-pagespeed-url-hash="4126159952" />

Your task is to find the minimum number of columns needed to be erased such that the remaining formula becomes a correct addition.

Input

There are multiple test cases in the input. Each test case starts with a line containing the single integer n, the number of digit columns in the addition (1 ⩽ n ⩽ 1000). Each of the next 3 lines contain a string of n digits. The number on the third line is presenting the (not necessarily correct) sum of the numbers in the first and the second line. The input terminates with a line containing “0” which should not be processed.

Output

For each test case, print a single line containing the minimum number of columns needed to be erased.

Sample Input

3
123
456
579
5
12127
45618
51825
2
24
32
32
5
12299
12299
25598
0

Sample Output

0
2
2
1 这题就是给你一个竖式,然后看去除多少列,能使这个竖式正确。
这题其实很好写,唉 ,DP写少了, 其实这个是个很经典的DP
求最长上升子序列的变形,思想一样,只是判断条件不同而已。
这么裸的DP换个样子我就认不出了。菜是原罪啊!!!! 注意
a[i]+b[i]-10==c[i] 只在这个条件下更新ans的值是有原因的,
因为你如果此时存在进位的情况 你并不能判断他到底是不是该去还是留。
求出最长的对的式子,用n-ans答案就出来了
我觉得我要开始我的基础DP训练了 , 这个真的不能再拖了
 #include <iostream>
#include <map>
#include <set>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector>
using namespace std;
const int maxn =;
int a[maxn],b[maxn],c[maxn],dp[maxn],k[maxn];
int n;
int main() {
//freopen("DATA.txt","r",stdin );
while(scanf("%d",&n),n){
memset(dp,,sizeof(dp));
memset(k,,sizeof(k));
for (int i= ;i<n ;i++ )
scanf("%1d",&a[i]);
for (int i= ;i<n ;i++ )
scanf("%1d",&b[i]);
for (int i= ;i<n ;i++ )
scanf("%1d",&c[i]);
int ans=;
for (int i=n- ;i>= ;i--) {
if (a[i]+b[i]==c[i]) {
dp[i]=;
k[i]=;
if (dp[i]>ans) ans=dp[i];
}
if (a[i]+b[i]-==c[i]) {
dp[i]=;
k[i]=;
}
for (int j=n- ;j>i ;j--) {
if (a[i]+b[i]+k[j]==c[i] && dp[i]<dp[j]+) {
k[i]=;
dp[i]=dp[j]+;
if (dp[i]>ans) ans=dp[i];
}
if (a[i]+b[i]+k[j]-==c[i] && dp[i]<dp[j]+ ) {
k[i]=;
dp[i]=dp[j]+;
}
}
}
printf("%d\n",n-ans);
}
return ;
}

Column Addition~DP(脑子抽了,当时没有想到)的更多相关文章

  1. 【动态规划】Column Addition @ICPC2017Tehran/upcexam5434

    时间限制: 1 Sec 内存限制: 128 MB 题目描述 A multi-digit column addition is a formula on adding two integers writ ...

  2. CSU-2034 Column Addition

    CSU-2034 Column Addition Description A multi-digit column addition is a formula on adding two intege ...

  3. 2018湖南多校第二场-20180407 Column Addition

    Description A multi-digit column addition is a formula on adding two integers written like this:

  4. leetcode修炼之路——387. First Unique Character in a String

    最近公司搬家了,有两天没写了,今天闲下来了,继续开始算法之路. leetcode的题目如下: Given a string, find the first non-repeating characte ...

  5. CQOI2021 退役记

    Day -1 晚上去了酒店然后就睡觉了. Day 1 进考场之前互相奶. 进了考场之后看题,发现T1很水(伏笔1,然后直接开始写 \(\Theta(n\log^2n)\)(二分+动态开点线段树),调了 ...

  6. Fzu2109 Mountain Number 数位dp

    Accept: 189    Submit: 461Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description One ...

  7. poj 1088 滑雪(区间dp+记忆化搜索)

    题目链接:http://poj.org/problem?id=1088 思路分析: 1>状态定义:状态dp[i][j]表示在位置map[i][j]可以滑雪的最长区域长度: 2>状态转移方程 ...

  8. CH0103 最短Hamilton路径 dp

    正解:状压dp 解题报告: 完了吃枣退役:D 我是真的没想到这是个dp...脑子越来越不好了,大概是太久没碰OI了都要生疏了...哭了,感觉自己太傻逼了可能不适合学信息... 知道是个状压dp就eas ...

  9. bzoj 1630: [Usaco2007 Demo]Ant Counting【dp】

    满脑子组合数学,根本没想到dp 设f[i][j]为前i只蚂蚁,选出j只的方案数,初始状态为f[0][0]=1 转移为 \[ f[i][j]=\sum_{k=0}^{a[i]}f[i-1][j-k] \ ...

随机推荐

  1. 关系型数据库工作原理-数据库查询器(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  2. ECharts组件应用样例代码

    一.从Echarts官网上下载最新版本组件 Echarts是百度开发的开源Web图表组件,界面美观,使用简单.组件下载地址:http://echarts.baidu.com/echarts2/doc/ ...

  3. redux (一)

    redux 是一个状态管理的库. redux认为页面所有的变化,都是基于状态的改变触发的,所以我们维护一个应用的时候,都是在维护这些状态.而 redux 就是为了维护状态而生的. API create ...

  4. Sqlite 梳理

    前言 LZ最近失业,梳理下最近一个项目的 项目结构-供应链系统 接着上一篇博客 http://www.cnblogs.com/buruainiaaaa/p/6786527.html 上篇说到整套系统分 ...

  5. 云计算之路-阿里云上:针对 docker swarm 故障的部署调整以及应急措施

    针对这周 docker swarm 集群的频繁故障(详见故障一 .故障二.故障三),我们今天对 docker swarm 集群的部署进行了如下调整. 将 docker engine 由  “17.12 ...

  6. JS 装饰器解析

    随着 ES6 和 TypeScript 中类的引入,在某些场景需要在不改变原有类和类属性的基础上扩展些功能,这也是装饰器出现的原因. 装饰器简介 作为一种可以动态增删功能模块的模式(比如 redux ...

  7. Java Swing应用程序 JComboBox下拉框联动查询

    在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...

  8. Python快速入门之与C语言异同

    代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同. ...

  9. dhcp 的安装和配置文件

    install: yum  - y  install dhcp modify : vim  /etc/dhcp/dhcpd.conf ddns-update-style none;ignore cli ...

  10. NEO从入门到开窗(2) - 智能合约的面相

    一.啰嗦两句 昨天讲了智能合约的一生,那丫长啥样啊?今儿我就跟各位唠叨唠叨. 二.一个简单的智能合约 下面这段就是NEO实例源码里的一个,干撒用的?聪明的你一眼儿就看出来了吧,就是一个所谓域名合约的增 ...