返回题解分享
讨论 / 题解分享/ 帖子详情

X 进制减法(编程题) - 题解

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

long long n, ma, num[N], ma_, num_[N], ans;

int main(void) {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> n >> ma;
    for (int i = ma - 1; i >= 0; i --) cin >> num[i];
    cin >> ma_;
    for (int i = ma_ - 1; i >= 0; i --) cin >> num_[i];
    long long base = 1;
    for (int i = 0; i < ma; i ++) {
        long long cur = max(num[i], num_[i]) + 1;
        if (cur < 2) cur = 2;
        ans += ((num[i] - num_[i]) * base);
        ans %= 1000000007;
        base *= cur;
        base %= 1000000007; //防止base多次乘导致溢出
    }

    cout << ans % 1000000007 << endl;
    return 0;
}
0 回复 0 转发 0 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!