The 2021 ICPC Asia Regionals Online Contest (II) M Addition

Posted 嗯我想想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The 2021 ICPC Asia Regionals Online Contest (II) M Addition相关的知识,希望对你有一定的参考价值。


题目大意:
模拟一个自定义符号的加法器 a + b
第一行位数,第二行符号位,第三行数字a,第四行数字b

思路:
当时没做出来,下来补题其实就是小模拟,模拟进位的过程。就想着进位是怎么处理的就行了。

AC代码

#include <bits/stdc++.h>

using namespace std;
const int N = 65;
int t;

int a[N], b[N], sgn[N], ans[N];

int p = 0;  // 模拟进位

int main() {

    while (cin >> t) {
        for(int i = 0; i < t; i++)
            cin >> sgn[i];
        for(int i = 0; i < t; i++)
            cin >> a[i];
        for(int i = 0; i < t; i++)
            cin >> b[i];

        for(int i = 0; i < t; i++) {
            p *= sgn[i];    // 进位至当前位
            int k = a[i] + b[i] + p;
            // 分四种情况讨论
            if(k == 0 || k == 1) {
                ans[i] = k;
                p = 0;
            }
            if(k == 2) {
                ans[i] = 0;
                p = 1;
            }
            if(k == 3) {
                ans[i] = 1;
                p = 1;
            }
            if(k == -1) {
                ans[i] = 1;
                p = -1;
            }
            p *= sgn[i];    // 当前位产生给下一位的进位
        }

        for(int i = 0; i < t; i++) {
            if(i == t - 1)
                cout << ans[i];
            else
                cout << ans[i] << ' ';
        }
    }
    return 0;
}

以上是关于The 2021 ICPC Asia Regionals Online Contest (II) M Addition的主要内容,如果未能解决你的问题,请参考以下文章

2021ICPC网络赛第二场The 2021 ICPC Asia Regionals Online Contest (II) L Euler Function

The 2021 ICPC Asia Regionals Online Contest (II)

The 2021 ICPC Asia Regionals Online Contest (II) M Addition

[树形DP] The 2021 ICPC Asia Nanjing Regional Contest H题

The 46th ICPC Asia Jinan Regional Contest,2021,46届济南站热身赛

The 2019 ICPC Asia Shanghai Regional Contest