1.进制转换思维导图.

手工制图,不够更详细,还望各位见谅;

2.进制转换思想

  • 首先理解题意真的很重要!很重要!看懂了才有思路!!

  • 和正常的进制转换相比,此题的转换在于不同数位上的进制数不同,而且取决于该数位的大小(进制位是该数位最大数加1,且末位最低为2进制);

  • 要注意相同位数时第一组数减第二组数得到值为负数(例如321&&431中的‘2’减‘3’==‘-1’)(我分享两种方法1.不需要考虑负数2.需要考虑负数);

  • 还要考虑两组数是否有相同的位数(可能存在a为321而b为21这种情况);

  • 关于为什么是乘下一位进制c[i-1],我举一个例子比如说十进制的12(因为只有当个位满了之后才会向十位进一,所以等于1*10+2*1==12);

  • 本题也属于一道贪心题;

3.主旨展现

  • 用a数组逆序存第一组数,用b数组逆序存第二组数;(逆序存的目的是为了排除位数不相同的情况)

  • 用c数组存储该位上的进制数;(注意末尾最低也是2进制)

  • 因为可能数值太大,注意运算时要%1000000007;

4.例题(1)来喽——22蓝桥杯E题

题目描述

进制规定了数字在数位上逢几进一。 X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某 种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数 321 转换为十进制数为 65。 现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确 定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进 制。请你算出 A − B 的结果最小可能是多少。 请注意,你需要保证 A 和 B 在 X 进制下都是合法的,即每一数位上的数 字要小于其进制。

输入格式

第一行一个正整数 N,含义如题面所述。 第二行一个正整数 Ma,表示 X 进制数 A 的位数。 第三行 Ma 个用空格分开的整数,表示 X 进制数 A 按从高位到低位顺序各 个数位上的数字在十进制下的表示。 第四行一个正整数 Mb,表示 X 进制数 B 的位数。 第五行 Mb 个用空格分开的整数,表示 X 进制数 B 按从高位到低位顺序各 个数位上的数字在十进制下的表示。 请注意,输入中的所有数字都是十进制的。 
对于 30% 的数据,N ≤ 10; Ma, Mb ≤ 8. 
对于 100% 的数据,2 ≤ N ≤ 1000; 1 ≤ Ma, Mb ≤ 100000; A ≥ B.

输出格式

输出一行一个整数,表示 X 进制数 A − B 的结果的最小可能值转换为十进 制后再模 1000000007 的结果。

输入样例

11
3
10 4 0
3
1 2 0

输出样例

94

样例说明

当进制为:最低位2进制,第二数位5进制,第三数位11进制时,减法得到的差最小。此时A在十进制下是108,B在十进制下是14,差值是94。

方法一:秦九邵算法——从前往后

#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;
const int N=1e5+10;
long long int M,n,m,a[N],b[N],c[N],s=0;int main()
{cin>>M;//迷惑你的,用不到cin>>n;memset(a,0,sizeof a);//需要初始化一下for(int i=n; i>=1; i--){cin>>a[i];}cin>>m;memset(b,0,sizeof b);//需要初始化一下for(int i=m; i>=1; i--){cin>>b[i];}for(int i=n; i>=1; i--){c[i]=max(a[i]+1,b[i]+1);if(c[i]<2) c[i]=2;//最小进制为2进制}for(int i=n; i>1; i--){s=(s+(a[i]-b[i]))*c[i-1]%mod;}s=s+a[1]-b[1];//最后一项不能进入循环,因为c[0]=0;cout<<s<<endl;return 0;
}

方法二:需要考虑负数——从后往前

#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;
const int N=1e5+10;
long long int M,n,m,a[N],b[N],c[N],s=0;int main()
{cin>>M;cin>>n;memset(a,0,sizeof a);for(int i=n; i>=1; i--){cin>>a[i];}cin>>m;memset(b,0,sizeof b);for(int i=m; i>=1; i--){cin>>b[i];}for(int i=1; i<=n; i++)//与第一种方法相反{c[i]=max(a[i]+1,b[i]+1);if(c[i]<2) c[i]=2;}long long int k=1;for(int i=1; i<=n; i++){s+=((a[i]-b[i])*k)%mod;s=(s+mod)%mod;//可能出现负数,先加再%防止负数出现k=(k*c[i])%mod;//进制累乘}cout<<s<<endl;return 0;
}

进制转化——2022蓝桥杯(E题)相关推荐

  1. 将最大位1000位的16进制转化位8进制(蓝桥杯)

    用c++实现将最大位1000位的16进制转化成8进制(## 蓝桥杯) 题目 先将16进制转化成二进制在将其转化成八进制 代码如下(示例): ```cpp #include <bits/stdc+ ...

  2. 蓝桥杯真题2017-2021

    刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...

  3. 长沙学院2022蓝桥杯模拟赛一

    长沙学院2022蓝桥杯模拟赛一_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJhttps://ac.nowcoder.com/acm/contest/26010#ques ...

  4. 第十届蓝桥杯真题题解

    目录 一.组队(DFS) 二.年号字串(进制转换) 三.数列求值 四.数的分解 五.迷宫(BFS) 六.特别数的和(暴力) 七.完全二叉树的权值 一.组队(DFS) 题目描述 本题为填空题,只需要算出 ...

  5. 第五届蓝桥杯真题解析【JavaC组】

    第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...

  6. 10进制与26进制转化

    蓝桥杯--进制转换--10进制与26进制转换中的问题 一.问题描述 1.字母编号序列LANQIAO表示的数为多少? 2.2021用字母怎么表示? 二.问题分析 2.1规律解析 2.2 十进制<- ...

  7. # 2014年蓝桥杯真题CC++B组

    2014年蓝桥杯真题C/C++B组 1.啤酒和饮料 题目描述 啤酒每罐2.3元,饮料每罐1.9元,小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道她买的啤酒比饮料的数量多,请你计算他买了几罐啤 ...

  8. 2021.5.22 2022蓝桥杯练习赛3

    2021.5.22 2022蓝桥杯练习赛3 闲话: 1.就难度而言,本次练习赛题目整体比较简单,要是认真补了前两场的题,应该可以轻松做完4到5题. 2.就体验而言,这场练习赛数据普遍较弱,基本上瞎搞都 ...

  9. 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和

    注意:加了题目链接 目录 注意:加了题目链接 一.打表模拟法 介绍 1. 算式问题 题目描述 解析与代码演示 2. 求值 题目描述 解析与代码演示 3. 既约分数 题目描述 解析与代码演示 4. 天干 ...

  10. 2022蓝桥杯学习——6.双指针、BFS和图论

    一.双指针 关于双指针 核心思想就是优化!! 双指针只用一层循环,虽然里面是while,但j只执行了n次,所以ij一共就是2n,时间复杂度就是O(n) , 这种题一般先写出暴力算法,然后看单调性,如果 ...

最新文章

  1. 接口是什么意思_程序员天天用却不懂得冷知识,这两句口诀,让你理解RESTful接口...
  2. STL 中priority_queue小结
  3. 如何在Android手机上进行Google Map的开发。
  4. 模式识别之基础---常用分类算法特性归纳
  5. 【专利】检索网站到底哪个能用?
  6. CVPR 2019 | 实体零售场景下密集商品的精确探测
  7. ArrayList的add(E e)方法与扩容
  8. [Java基础]反射练习之越过泛型检查,运行配置文件制定内容
  9. 【原创】linux 下远程连接windows桌面
  10. python csv pandas_Python Pandas——Read_csv详解
  11. 写出调试c语言程序的基本操作步骤,C语言程序设计基本步骤
  12. CommandName属性和CommandArgument属性
  13. 使用python快速插入一百万数据
  14. H5移动端出生日期插件
  15. 空间直角坐标转大地坐标 matlab实现
  16. throttle在程序中的作用
  17. Ruby Rose动态壁纸制作记录
  18. 微擎安装之腾讯云懒人教程篇
  19. 一建加试英语和计算机,一建和一造哪个考试难度大
  20. 智能洗地机什么牌子好?智能洗地机排行

热门文章

  1. Python的IDLE无法打开
  2. python数据分析处理:PUBG Finish Placement Prediction
  3. 2020亚马逊创新日:深度解读人工智能和机器学习的数字驱动力
  4. 注意力、自注意力和多头注意力
  5. 词干提取算法Porter Stemming Algorithm解读
  6. 设计一个密码登录程序。要求: 设定用户名为lili,密码是123321。若用户名正确,密码也正确,则显示:“lili,欢迎您”
  7. python正则表达式代码_python正则表达式实例代码
  8. 使用VS Code插件Code Runner一键运行OpenSees
  9. vscode的code runner不生成临时文件
  10. MPB:遗传发育所白洋组-​高通量分离培养和鉴定植物根系细菌