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="" />

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="" />

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

Hint

Source

ATRC2017

开始是用贪心写的,总感觉自己没错,贪心的判断写了一层又一层最后还是错了。

结束后看了学长的代码,用dp写的,顿时有种恍然大悟的感觉,考试的时候钻进死胡同了。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
#define debug(a) cout << #a << ": " << a << endl
int main() {
int n;
while( cin >> n ) {
if( !n ) {
break;
}
string s1, s2, s3;
cin >> s1 >> s2 >> s3;
int a[], b[], c[];
for( int i = ; i < n; i ++ ) {
a[i] = s1[i] - '';
b[i] = s2[i] - '';
c[i] = s3[i] - '';
}
int dp[];
memset( dp, , sizeof(dp) );
for( int i = n - ; i >= ; i -- ) {
if( ( a[i] + b[i] ) % == c[i] ) { //如果当前直接或者进位后间接满足就置为1
dp[i] = ;
}
for( int j = i + ; j < n; j ++ ) {
int jinwei = ( dp[j] ) && ( a[j] + b[j] > c[j] ); //后面是否有可以进位的
if( ( a[i] + b[i] + jinwei ) % == c[i] ) {
dp[i] = max( dp[i], dp[j] + ); //有的话就更新i位置的dp值
}
}
}
int ans = n;
for( int i = ; i < n; i ++ ) {
if( a[i] + b[i] <= c[i] ) {
ans = min( ans, n - dp[i] );
}
}
cout << ans << endl;
}
return ;
}

2018湖南多校第二场-20180407 Column Addition的更多相关文章

  1. 2018湖南多校第二场-20180407 Barareh on Fire

    Description The Barareh village is on fire due to the attack of the virtual enemy. Several places ar ...

  2. 2019牛客多校第二场 A Eddy Walker(概率推公式)

    2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n ...

  3. 2018 Multi-University Training Contest 2 杭电多校第二场

    开始逐渐习惯被多校虐orz  菜是原罪 1004  Game    (hdoj 6312) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6312 虽然披着 ...

  4. 2019年湖南多校第一场||2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018)

    第一场多校就打的这么惨,只能说自己太菜了,还需继续努力啊- 题目链接: GYM链接:https://codeforces.com/gym/101933 CSU链接:http://acm.csu.edu ...

  5. hdu6312 2018杭电多校第二场 1004 D Game 博弈

    Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. 2018牛客多校第二场a题

    一个人可以走一步或者跳x步,但不能连着跳,问到这个区间里有几种走法 考虑两种状态  对于这一点,我可以走过来,前面是怎么样的我不用管,也可以跳过来但是,跳过来必须保证前一步是走的 dp[i][0]表示 ...

  7. 2018杭电多校第二场1003(DFS,欧拉回路)

    #include<bits/stdc++.h>using namespace std;int n,m;int x,y;int num,cnt;int degree[100007],vis[ ...

  8. 2019 湖南多校第一场(2018~2019NCPC) 题解

    解题过程 开场shl过B,C,然后lfw写J,J WA了以后shl写A,但是因为OJ上空间开小WA了,而不是MLE?,J加了特判过了.之后一直在检查A错哪了,直到qt发现问题改了空间,浪费许多时间,但 ...

  9. 2014多校第二场1011 || HDU 4882 ZCC Loves Codefires (贪心)

    题目链接 题意 : 给出n个问题,每个问题有两个参数,一个ei(所要耗费的时间),一个ki(能得到的score).每道问题需要耗费:(当前耗费的时间)*ki,问怎样组合问题的处理顺序可以使得耗费达到最 ...

随机推荐

  1. 传输层的TCP和UDP协议

    作者:HerryLo 原文永久链接: https://github.com/AttemptWeb... TCP/IP协议, 你一定常常听到,其中TCP(Transmission Control Pro ...

  2. 2019上半年总结——Github上那些Java面试、学习相关仓库

    分享一下最近逛Github看到了一些对于Java面试以及学习有帮助的仓库,这些仓库涉及Java核心知识点整理.Java常见面试题.算法.基础知识点比如网络和操作系统等等. 知识点相关 1.JavaGu ...

  3. Zabbix编译安装(全)

    一.前言 (一).概述 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...

  4. 自定义 Button 选择器

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  5. 转载:MyBatis mapper.xml中使用静态常量或者静态方法

    转自:https://my.oschina.net/wtslh/blog/682704 今天偶然之间刷到了这样一篇博客,有点意外 mybatis 还可以这样使用ONGL常量的方式,该方式针对 xml的 ...

  6. linux环境下搭建自动化Jenkins管理工具

    一.搭建一个jak--tomcat服务器到自己的linux服务器上 具体的服务器搭建这里可以参考华华大佬的博客:https://www.cnblogs.com/liulinghua90/p/46614 ...

  7. 如何为 caddy 添写自定义插件

    如何为 caddy 添写自定义插件 项目地址:https://github.com/yhyddr/quicksilver/tree/master/gosample/caddy-plugin 前言 Ca ...

  8. xcode自动刷新resource下的文件

    修改resource下的lua或者ccbi文件时,xcode并不会察觉到,所以需要手动清理xcode缓存和模拟器缓存,开发效率比较低下. 通过以下步骤可以实现自动刷新resource下的文件,且无需手 ...

  9. 2月9日 《Java 8实战》读后感

    第一部分 基础知识 第3章 Lambda表达式 使用函数式接口 Predicate Consumer Function 第二部分 函数式数据处理 第4章 引入流 第5章 使用流 第6章 用流收集数据 ...

  10. 送礼物「JSOI 2015」RMQ+01分数规划

    [题目描述] 礼品店一共有N件礼物排成一列,每件礼物都有它的美观度.排在第\(i(1\leq i\leq N)\)个位置的礼物美观度为正整数\(A_I\).JYY决定选出其中连续的一段,即编号为礼物\ ...