2021 ICPC 网络赛2 M.Addition

此篇博客介绍了如何通过模拟两位数的正负加法,利用sgn[]和va[], vb[]数组,计算vci值,确保结果为0或1。作者详细解释了进位处理的方法,并给出了多个实例来演示计算过程。

输入n与 sgn[] va[] vb[]

a=\sum_{i=0}^{n-1}{va}_{i}{sgn}_{i}2^{i}

b=\sum_{i=0}^{n-1}{vb}_{i}\cdot {sgn}_{i}\cdot 2^{i}

求vci 使得

a+b=\sum_{i=0}^{n-1}{vc}_{i} {sgn}_{i}2^{i}

va vb vc取0或1 sgni取1或-1

模拟每一位都有正负的加法

tmp表示进位

x=(tmp+(va+vb)*sgn)/sgn为vc理论上应取的值

x可取 -1 0 1 2 3

参考计算机组成原理 二进制乘法的进位处理

x=-1  vc=1 tmp=-1

x=0   vc=0 tmp=0

x=1   vc=1 tmp=0

x=2   vc=0  tmp=1

x=3   vc=1  tmp=1

模拟一遍即可求得答案

ICPC网络ICPC的重要组成部分,为参队伍提供了参与区域选拔的机会。 从程安排来看,第48届(2023年)ICPC的第一次网络选拔2023年9月17日举行,第二次网络选拔2023年9月23日举行[^1]。 规则方面,ACM - ICPC以团队形式代表各学校参,每队由至多3名队员组成,每位队员必须是在校学生,有一定年龄限制,并且每年最多可以参加2站区域选拔。比期间,每队使用1台电脑,需在5个小时内使用C/C++、Java和Python中的一种编写程序解决7到13个问题。程序完成后提交评测机运行,运行结果会判定为正确或错误两种并及时通知参队。每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时[^2]。 ```python # 这里可以简单模拟一个ICPC的计分逻辑 def calculate_score(correct_problems, wrong_submissions, total_time): penalty = sum(wrong_submissions) * 20 total_score = sum(correct_problems) total_time_with_penalty = total_time + penalty return total_score, total_time_with_penalty # 示例使用 correct_problems = [1, 1, 1] # 假设解决了3道题 wrong_submissions = [0, 2, 1] # 每道题的错误提交次数 total_time = 240 # 总用时240分钟 score, time = calculate_score(correct_problems, wrong_submissions, total_time) print(f"总得分: {score}, 总用时: {time} 分钟") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值