当前位置: 首页 > news >正文

X 进制减法

题目链接:

思路:

X进制数321怎么转换为十进制数为65?如下图:

①题目要求我们求 A - B 的最小值,对第 i 位,要求 A[i] - B[i] 的最小值,当进制越小的时候差值越小,但进制要比 max(A[i], B[i])大。题目有要求,最低为二进制,因此:进制 = max(max(A[i], B[i]), 2);

②由于数据比较大,所以我们进行一次计算,就取模 (1000000007)。

代码如下:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100010, MOD = 1000000007;

int n;
//存数字 A 、B
int a[N], b[N];
//答案
int ans;

signed main(){
    cin >> n;
    int m1; cin >> m1;
    //将 A 位数字每一位逆序存入到数组a中
    for(int i = m1-1; i >= 0; i--) cin >> a[i];
    //将 B 位数字每一位逆序存入到数组b中
    int m2; cin >> m2;
    for(int i = m2-1; i>=0; i--) cin >>b[i];
    
    //开始的进位为1
    int d = 1;
    //从数字的各位枚举到A,B数字中的最高位
    for(int i = 0; i < max(m1, m2); i++){
        //这一位差*前面进制
        ans += (a[i]-b[i]) * d;
        //取模,防止数据过大
        ans %= MOD;
        //更新最小的进制 最低为二进制
        int w = max(max(a[i], b[i])+(long long)1, (long long)2) % MOD;
        //更新最小的进制
        d *= w;
        //取模,防止数据过大
        d %= MOD;
    }
    cout << ans%MOD << endl;
    return 0;
}

相关文章:

  • C++-ffmpeg-2-3-工厂模式封装SDL-9-7
  • Qt上hook钩子的使用,监测键盘和鼠标。
  • Crow介绍及使用
  • 一文了解亿级数据检索:RedisSearch
  • OpenBMC:BmcWeb 处理http请求5 检查权限
  • C#核心学习(十二)面向对象--多态(1)virtual override和base三剑客
  • CExercise_07_1指针和数组_5检查一个整数数组是否是回文,即正序与倒序相同
  • 【C#知识点详解】LinkedList<T>储存结构详解
  • Spring Boot接口返回Long类型的数据时丢失精度的全局处理
  • LCR 131. 砍竹子 I
  • 什么是混合搜索Hybrid Search?
  • Python 小练习系列 | Vol.14:掌握偏函数 partial,用函数更丝滑!
  • 和DeepSeek聊高速公路定向广播
  • NO.79十六届蓝桥杯备战|数据结构-扩展域并查集-带权并查集|团伙|食物链|银河英雄传说(C++)
  • CesiumEarth v1.12 更新,支持安卓平板离线浏览3DTiles格式的三维倾斜模型
  • 【计网】作业4
  • 树和图论(详细整理,简单易懂!)
  • AutoGLM沉思使用方式
  • 【已完结STM32】--自学江协科技笔记汇总
  • WHAT - React 元素接收的 ref 详解
  • wordpress 评论倒叙/长沙seo培训班
  • 网站整合营销等服务/棋牌软件制作开发多少钱
  • 易尔通做网站怎么样/seo服务方案
  • 网络营销运营推广方案下载/短视频seo营销系统
  • 衡水网站制作费用/12345浏览器网址大全
  • 徐州网站制作流程/东莞网站建设推广品众