蓝桥杯每日一题2023.9.16

蓝桥杯2022年第十三届省赛真题-X进制减法 - C语言网 (dotcpp.com)

题目描述

进制规定了数字在数位上逢几进一。

X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数 321 转换为十进制数为 65。

现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进制。请你算出 A − B 的结果最小可能是多少。

请注意,你需要保证 A 和 B 在 X 进制下都是合法的,即每一数位上的数字要小于其进制。

分析

可知对于A - B取到最小值需要其进制数取到最小

(以下为参考文章)

选取最小进制

选取其中最大的进制是因为A与B同进制,要保证进制合法

因此两者数据间只有选最大的那个数据才能保证两者相同

比如 6与8,我们只有选择8的进制我们才能同步两者的进制.

是在保证进制合法的情况下选择最小的进制

而题目意思中的十进制输入只是我们认为输入的数据,但是题设中的意思是我们实际上不知道它是什么进制

而为了所求相减最小,我们就选最小的进制,也就是保证两者相同时选择最小的进制,也就是加1.

加1是因为如果仅仅赋值输入的数据不可能的,注意有进位这个东西,不加1数据早就进位了

如我们看到的9这个数字,那么它最小的进制只可能是10,如果是9进制,是会直接进位的,

这样我们是看不见这个数字9的,看见的是进位后的结果

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10, M = 1000000007; 
ll n, ma, mb, sum, a[N], b[N], jz[N];
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n;
	cin >> ma;
	for(int i = ma; i >= 1; i --)cin >> a[i];
	cin >> mb;
	for(int i = mb; i >= 1; i --)cin >> b[i];
	//以下为找最小进制的过程,由于A >= B 
	for(int i = ma; i >= 1; i --)
	{
		jz[i] = max(max(a[i] + 1, b[i] + 1), 2ll);//最小为二进制 
	}
	for(int i = ma; i >= 2;  i--)
	{
		sum = ((sum + a[i] - b[i]) * jz[i - 1]) % M; 
	}
	sum += (a[1] - b[1]);//最低为直接将结果加起来 
	sum %= M;
	cout << sum;
	return 0;
}
相关推荐
叩码以求索1 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
谙弆悕博士2 小时前
信息系统项目管理师教程(第4版)笔记——第 2 章 信息技术发展
笔记·职场和发展·软考高级·软考·高项·项目经理
wdfk_prog5 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
龙虾PRO7 小时前
能源与股票量化核心差异,AI全链路落地实操手册
java·面试·职场和发展
wdfk_prog10 小时前
嵌入式面试真题第 12 题:资源受限长期运行系统的确定性内存管理与内存池架构设计
考研·面试·职场和发展
思-无-涯13 小时前
测试面试新趋势:工程思维成关键
人工智能·功能测试·测试工具·职场和发展·可用性测试
醇氧1 天前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
谙弆悕博士1 天前
系统集成项目管理工程师教程(第3版)笔记——第17章:法律法规和标准规范
笔记·职场和发展·学习方法·业界资讯·软考·法律·法规
imbackneverdie1 天前
知网官宣:禁止 AI 列为论文署名作者,标注 Gemini、DeepSeek 等 AI 为作者的稿件统一下架
大数据·人工智能·ai·职场和发展·aigc·科研·高校
测试老哥1 天前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试