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

从零到一:QT for OpenHarmony 开发环境实战搭建与踩坑指南 本文是一份详尽的QT for OpenHarmony开发环境搭建实战指南。文章手把手教你如何在Windows和macOS系统上,从环境准备、核心工具(DevEco Studio与社区版QT SDK)安装配置,到创建首个QT Quick项目、解决构建部署中的常见问题,最终实现应用在OpenHarmony设备上运行。内容涵盖关键配置修改、资源管理及深度踩坑经验,旨在帮助开发者高效开启跨平台开发之旅。 阅读详情

时间限制: 1 Sec 内存限制: 128 MB
题目描述

A multi-digit column addition is a formula on adding two integers written like this:
这里写图片描述
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.
这里写图片描述
Your task is to find the minimum number of columns needed to be erased such that the remaining formula becomes a correct addition.
输入
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.
输出
For each test case, print a single line containing the minimum number of columns needed to be erased.
样例输入
3
123
456
579
5
12127
45618
51825
2
24
32
32
5
12299
12299
25598
0
样例输出
0
2
2
1

给你一个只有两个数相加的,长度为n列的加法竖式,问最少删去几列使得竖式成立。
设两个相加的数为a和b,和为c
如果要使第i列的等式成立,应该满足下面四种情况的一种:
1. a[i]+b[i] == c[i]; 刚好
2. a[i]+b[i]-10 == c[i]; 产生进位
3. a[i]+b[i]+1 == c[i]; 接受进位后成立
4. a[i]+b[i]+1-10 == c[i]; 接受进位成立且产生进位
我是从左往右推,令dp[i][0] (i from 1)表示第i位不接受进位时,最少删去的列数;
令dp[i][1] 表示第i位接受进位时,最少删去的列数;
因为第n位一定不接受进位,所以输出dp[n][0]表示答案;
转移方程详见代码
读者也可尝试从右往左推

#define IN_LB() freopen("F:\\in.txt","r",stdin)
#define IN_PC() freopen("C:\\Users\\hz\\Desktop\\in.txt","r",stdin)
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1005;
const int INF = 0x3f3f3f3f;
int a[maxn],b[maxn],c[maxn],dp[maxn][2];
int main() {
//    IN_LB();
    int n;
    while(scanf("%d",&n)&&n) {
        for(int i=1; i<=n; i++)scanf("%1d",a+i);
        for(int i=1; i<=n; i++)scanf("%1d",b+i);
        for(int i=1; i<=n; i++)scanf("%1d",c+i);
        dp[0][1] = INF;
        for(int i=1; i<=n; i++) {
            if(a[i]+b[i]==c[i]) {
                dp[i][0] = dp[i-1][0];
            } else if(a[i]+b[i]-10==c[i]) {
                dp[i][0] = min(dp[i-1][0]+1,dp[i-1][1]);
            } else dp[i][0] = dp[i-1][0]+1;
            if(a[i]+b[i]+1 ==c[i]) {
                dp[i][1] = min(dp[i-1][1]+1,dp[i-1][0]);
            } else if(a[i]+b[i]+1-10==c[i]) {
                dp[i][1] = dp[i-1][1];
            } else dp[i][1] = dp[i-1][1]+1;
        }
        printf("%d\n",dp[n][0]);
    }
    return 0;
}
【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】 打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。 阅读详情

相关推荐

一觉醒后ChatGPT 被淘汰了

近日,AI 界貌似出现了一种新的趋势:自主人工智能。这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy 也为其大力宣传,并在推特赞扬:「AutoGPT 是 prompt 工程的下一个前沿。」

Rocky006的博客 13万+

Column Addition

题目描述 A multi-digit column addition is a formula on adding two integers written like this: A multi-digit column addition is written on the blackboard, but the sum is not necessarily correct. We can e...

qq_41963405的博客 359

Dify沙盒容器部署实战:解决config.yaml缺失与系统调用权限问题

本文详细解析了Dify沙盒容器部署中的两大常见问题:config.yaml缺失与系统调用权限限制。通过实战步骤指导如何正确配置卷挂载解决`no such file or directory`错误,并深入讲解如何调整`allowed_syscalls`白名单应对`error: operation not permitted`权限问题,帮助开发者高效完成Dify容器化部署。

gg901的博客 922

ATRC2017 Column Addition

DescriptionA multi-digit column addition is a formula on adding two integers written like this:A multi-digit column addition is written on the blackboard, but the sum is not necessarily correct. We ca...

AC_hunter的博客 558

CentOS 环境 sngrep 安装及使用

在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对 SIP 信令的抓包,sngrep 则更为好用。因为 sngrep 不仅提供了图形界面,还会将一通会话的 SIP 信令关联汇总,非常直观执行以下命令下载 的相关依赖库 1.2 添加 sngrep 的源并导入 执行下面的命令新增一个源仓库配置文件 然后在该文件中写入以下配置内容 执行命令导入源仓库的公钥 1.3 安装 sngrep

谈谈1974 8148

三边定位的最小二乘法运用

已知:条件基站到移动台的距离D,基站的坐标(xi,yi,zi) 求:移动台的坐标(x,y,z) 运用最小二乘法的核心是找到最小二乘法的矩阵形式即 Ax=B 在本次实验中通过三边定位计算得到 A=[A;2*(xi-x1),2*(yi-y1),2*(zi-z1]; %系数矩阵A b=[b;D1^2-Di^2+xi^2+yi^2+zi^2-x1^2-y1^2-z1^2]; %增广矩阵b

qq_26250141的博客 1万+

ACM ICPC 2018 Asia Region - Tehran Site Solution Sketch

比赛主页 http://icpc.sharif.edu/2018/ 这套题目前在 CF Gym 和 UVA Live Archive 都找不到,只能在官方主页找到题面和数据,没有题解和标程,但是最近有同学问了这套题的题解,我就尝试做了一下, 以下做法大部分未经过代码验证,不保证正确性,后续有空会验证,这里也不描述题意了, Problem A : ICPC 根据题意模拟。 Problem B : C...

quailty's 1229

robomimic实验复现全流程:从数据集下载到训练视频生成

本文详细介绍了机器人模仿学习项目RoboMimic的完整实验复现流程。内容涵盖从使用Conda创建Python 3.8隔离环境、安装RoboSuite仿真器和MuJoCo物理引擎,到下载并探索数据集、配置与启动模型训练,最后进行模型评估和生成策略执行视频。该指南旨在帮助研究者和开发者高效搭建实战环境,规避常见问题,快速验证算法或应用于实际场景。

weixin_29089057的博客 518

大田区域赛(2017-2018) A Broadcast Stations 题解

题源:CF GYM 101667 (本文最后如果有时间可以拓展成整个比赛的题解,暂时先写 A 题的题解) 题意:给定一棵 nnn 个节点的树,n≤5×103n \leq 5\times 10^3n≤5×103,可以在任意若干个点上花费 vvv 的权值,使周围距离不大于 vvv 的点都被覆盖到,要求 v>0v>0v>0。一个点可以不花费权值,问将整个树都覆盖到最小权值和为多少。 解法:首先有一个显而易见的贪心——一个点不会被多次覆盖到。因而不会存在高的点跨过一个要投入权值的低的点,覆盖到了一

m0_52048145的博客 208

基于遗传算法的柔性作业车间调度(初始化以及编码策略)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

菜鸡 8595

2025年前端框架全景解析:React、Vue、Angular的生态与未来之争

前端框架的竞争本质是工程哲学的分野:React的灵活、Vue的简洁、Angular的严谨,分别对应不同场景需求。

科技D人生 4844

Column Addition(dp)

A multi-digit column addition is a formula on adding two integers written like this: A multi-digit column addition is written on the blackboard, but the sum is not necessarily correct. We can erase...

PCCCCC的博客 315

点云从入门到精通技术详解100篇-基于三维点云的机器人抓取位姿检测(续)

集到的深度信息会存在噪点,因此需要将生成的场景点云进行预处理,获得平滑、降采样处理场景点云,本文设计的预处理操作更能从冗杂的场景点云中提取清晰、平滑的目标点云,便于后续的抓取位姿采样,提高后续算法的处理效率。因此需要对场景点云进行适当的分割,仅保留目标物体的点云,整个过程可以通过。场较小时,空间中的点云密度会更加提高;觉子系统的效率,再保持全局点云几何形状不改变的前提下,通过对目标点云进行。体素降采样可以快速地减少点云数据并同时保持点云的形。个点,由于我们实施抓取的目标物体只占整个场景点云图的一部分,

getusushu的博客 774

codeforces : X and Beasts(动态规划)

传送门:  http://codeforces.com/gym/101028/problem/J 【暑期训练正式开始了,加油~~争取区域赛资格,打破去年拿铁的悲剧(>﹏<),希望这个博客也能见证自己的一步步成长】 题意:在一串数中选择出严格递增的子序列,并且使得该数的2的多少幂次之和最小 思路:dp[i][j]表示检索到第i个数时其中最大的数是a[j]时候的取值之和。 如果a[j

Acuper的博客 847

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

acm icpc 2017 Tehran Barareh on Fire (bfs)

问题 : Barareh on Fire时间限制: 1 Sec  内存限制: 128 MB题目描述The Barareh village is on fire due to the attack of the virtual enemy. Several places are already on fire and the fire is spreading fast to other place...

ekqm1998的博客 390

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

UPC5431/acm icpc 2017 Tehran Column Addition

题目链接:http://exam.upc.edu.cn/problem.php?cid=1326&pid=7 题意:给你一个可能存在错误的加法等式,问最少删除多少列能使等式成立。 eg: 思考:如果某一列已经成立,如上图的1+4=5,他一定可以加到前面最长的成立的等式上,类似于最长上升子序列,不过要n^2扫。 做题时WA了几发,因为没考虑到等式的最高位不能有进位,以及可能某一列一开...

weixin_30362233的博客 190

CSU 2029 ATRC 2017

2029: Border WallSubmit Page    Summary    Time Limit: 3 Sec     Memory Limit: 512 Mb     Submitted: 2     Solved: 1    DescriptionThrough one of the most controversial presidential elections in the w...

Spy97的博客 324

H——Column Addition

H(1266): Column AdditionSubmit Page    Time Limit: 3 Sec     Memory Limit: 512 Mb     Submitted: 141     Solved: 21    DescriptionA multi-digit column addition is a formula on adding two integers writ...

Abandoninged的博客 460

CSU2034 Column Addition

2034: Column Addition 2034: Column Addition 题目大意:给出一个加法竖式,和一个错误答案,去掉若干列让竖式成立,例如:        12127      117       + 45618   = &gt; + 468       ———–    ———        51825       585 那么输出需要去掉的列数的最小数量。 ...

kuangle的博客 623

第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 D.Pokemon Ultra Sun(dp动态规划)

题目链接:https://ac.nowcoder.com/acm/contest/8688/D 题目描述 Two pokemons are in a battle.One is our and another is the opposite’s. Our pokemon is in confusion and the opposite’s pokemon is frozen. Once per turn , the opposite’s pokemon does nothing and our pokemo

Sankkl1的博客 688

黑龙江省赛 Doin‘ Time(区间动态规划)

​​​​​​​​​​​​ 题意: 第一行输入一个数字n,表示数据个数,接下来输入n个数据,你有n - 1 次操作数,每次操作都从其中挑选一对数a[x] 和 a[x + 1] 两个数变成一个数a[x] * a[x + 1],同时产生pow((a[x] - a[x + 1]), 2) 的一个value值,求当最后只剩下一个数字时sumvalue累计的最大值是多少。 **思路:**我们先预处理arry[ i ][ j ] (从i 到 j 位置上所有数乘积的取模),dp[ l ][ r ] 表示从l到 r 上val

m0_62792769的博客 1185

2021 ICPC 区域赛(上海) G.Edge Groups(树形dp)

边集合 引用 lwz_159的题解博客 Code:Code:Code: #include<bits/stdc++.h> #include<unordered_map> #define mem(a,b) memset(a,b,sizeof a) #define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)) #define sca scanf #define pri printf #define forr(a,b

酒姬民的博客 753

2019年秦皇岛区域赛I题:Invoker(动态规划)

Problem Description 在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可以获得相应属性的一个法球(element)。 但是祈求者同时最多只能有三个法球,即如果他在有三个法球的状态下又使用了某个法球技能,那么他会获得该法球,并失去之前三个法球中最先获得的一个。 不难得出,祈求者身上...

No Pain, No Gain . 707

2017乌鲁木齐区域赛A(动态规划,组合数学,期望)

#include<bits/stdc++.h>using namespace std;double c[110][110];double g[110];double dp[110][110];int n,m,k;void cnm(){ c[0][0]=1; for(int i=1;i<=100;i++) { c[i][0]=1; ...

weixin_34290390的博客 148

100道动态规划——42 CodeForces 908D New Year and Original Order 概率DP

Good Bye 2017! 概率DP真心不会做...... 题意是给出一个k,一个pa和一个pb 一开始当前串是一个空串,每一次操作都有pa/(pa+pb)的概率向当前串附加一个字符'a',pb/(oa+pb)的概率附加一个字符b,当考虑当前串的子序列,当出现大于等于k个子序列'ab'的时候,就停止,询问这时候子序列中'ab'的期望出现次数。 定义状态dp[i][j]表示

Sion 1198

HDOJ Hatsune Miku 5074【2014鞍山区域赛E题-动态规划】

Hatsune Miku Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 878    Accepted Submission(s): 616 Problem Description Hatsune Miku

豫帝哥哥 837
上一篇: 【高精度&想法题】Count the Even Integers @ICPC2017HongKong/upcexam5563#Java
下一篇: 【搜索】WAR大佬的SET @upcexam6201
乌拉尔银狼
博客等级 码龄10年 9粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值