X进制减法(蓝桥杯)_surocco的博客-程序员秘密

技术标签: c++  蓝桥杯  acm竞赛  

 

 

是哪个傻子比赛时看不懂题目我不说

看懂题目的跳过这里:先来看一看例子,最低数位为二进制,第二数位为十进制,第三数位为八进制;然后X进制数321变为十进制65;首先看最低数位1,变为十进制还是1;第二数位为十进制,但实际上,当最低位为2时,第二数位加1,所以实际上第二数位的2转为十进制为4;那第三数位,当第二数位为10时,第三数位加1,第二数位为10时,十进制是多少?我们考虑最低数位,是10*2=20;所以321→65即为3*(10*2)+2*2+1;

现在我们来概括一下:假设第 i 位为 ai 进制 (从低到高,假设 i=0 为最低位)

定义b_{i}=\Pi _{j=0}^{i-1}a_{j},

对于该规则下的进制数 A,其十进制值就是 A_{0}b_{0}+A_{1}b_{1}+L+A_{n}b_{n}

同样的,B的十进制值就是 B_{0}b_{0}+B_{1}b_{1}+L+B_{n}b_{n}

根据题意A-B,得(A_{0}-B_{0})b_{0}+(A_{1}-B_{1})b_{1}+L+(A_{m}-B_{m})b_{m}+A_{m+1}b_{m+1}+L+A_{n}b_{n}

(注意题中A的长度可能大于B

因为A₀-B₀,A₁-B₁……都已知,是定值;所以我们要让吧b₀,b₁……最小;也就是让进制尽可能小,显然每个位置的进制等于A,B 两个数的较大值 +1

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <map>
#include <vector>
#include <queue>
#include <set>
#define bug(x) cout<<#x<<"=="<<x<<endl;
using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef pair<int, int> PII;

const int mod = 1e9 + 7;
int a[100010], b[100010], c[100010];//c用来存数位
int A, B;
int main()
{
	int n;
	cin >> n;
	
	cin >> A;
	for (int i = 1; i <= A; i++) cin >> a[i];
	cin >> B;
	for (int i = 1; i <= B; i++) cin >> b[i];
	//求进制
	int len = A;//根据题意A>B
	for (int i = 1; i <= len; i++) {
		c[i] = 2;
		c[i] = max(c[i], max(a[i], b[i]) + 1);
	}
	//计算A-B
	ll ansA = 0, ansB = 0;
	for (int i = 1; i <= len; i++) {
		ansA = (ansA * c[i] + a[i]) % mod;
		if (i <= B) ansB = (ansB * c[i] + b[i]) % mod;
	}
	ll ans = (ansA - ansB + mod) % mod;
	cout << ans << endl;
	
	return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_63492087/article/details/124073758

智能推荐

java实现自动拨打电话语音提示_LonesomeRoad的博客-程序员秘密

本贴只做记录,感兴趣的朋友可以私信我或加我Q询问464744895需求:根据电话号码,自动拨打电话TTS生成语音进行提示用的是提供外呼技术支持的服务商,测试代码可用:package weixin.dianhua;import java.net.Socket;import java.security.MessageDigest;import java.security.NoSuc...

高性能 Nginx HTTPS 调优!为 HTTPS 提速 30%_程序员乔戈里的博客-程序员秘密

为什么要优化 Ngin HTTPS 延迟Nginx 常作为最常见的服务器,常被用作负载均衡 (Load Balancer)、反向代理 (Reverse Proxy),以及网关 (Gate...

java相关问题梳理01_李孟_新浪博客_Dlimeng的博客-程序员秘密

1.Spring配置数据源4种形式spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源。1.1.spring自带的数据源DriverManagerDataSourceXML代码:[html]viewplaincopyprint?&lt;&lt;/B&gt;beanid="dataSou...

iOS app 切图_weixin_34138139的博客-程序员秘密

iOS 切图尺寸规则目前iPhone有10种型号,5种屏幕尺寸,再加上6plus的“降采样”(Downsampling)(1080-1920),还有iPhone6和6+上的放大模式(1125-2001)和默认模式(1242-2208),是不是感觉好恐怖?但是不用怕,我分享一套超简单的适配方法,看完你都不信有这么简单~美工交付给开发的资料有:  1、标注图(以640为宽度尺寸为基准标注)...

SemanticImage Segmentation with Task-Specific Edge Detection Using CNNs 翻译_zibuyu1226的博客-程序员秘密

 《SemanticImage Segmentation with Task-Specific Edge Detection Using CNNs anda Discriminatively Trained Domain Transform》因为赶时间看,所以翻译了部分重要的内容供参考。 3提出的模型3.1模型概览(第二段)我们添加了第二个组件,我们称之为EdgeNet。Edge...

Visual Studio Code如何编写运行C、C++_weixin_30436101的博客-程序员秘密

Visual Studio Code如何编写运行C、C++作者:知乎用户链接:https://www.zhihu.com/question/30315894/answer/154979413来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。0. 前言本文面向初学者(但不是纯小白),分享一点我的经验。毕竟百度“VS Code C”出来的第一条就是这个...

随便推点

OSG渲染模式设置实现半透明效果_osg x-ray 渲染模式_醉逍遥_祥的博客-程序员秘密

一、代码osg::ref_ptr&lt;osg::Node&gt; createSceneGraph(){ osg::ref_ptr&lt;osg::Geometry&gt; geom = new osg::Geometry(); osg::ref_ptr&lt;osg::Vec3Array&gt; v = new osg::Vec3Array(); geom-&gt;setVer...

【docker设置host】docker镜像设置hosts_docker hosts配置_JMH741的博客-程序员秘密

hosts文件其实并不是存储在Docker镜像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主机上的/var/lib/docker/containers/(docker_id)目录下,容器启动时是通过mount将这些文件挂载到容器内部的。因此如果在容器中修改这些文件,修改部分不会存在于容器的top layer,而是直接写入这3个文件中。

地图算法_地图 xyz 算法_qq_16490557的博客-程序员秘密

//地图算法 0,01,1 2,1  0,11,22,2  0,21,3 2,3        //生成了一个摆放顺序    function init_map($x , $y){        $total = $x * $y;        $array = array();        $_x = 0;        $_y = 0;        for($i = 1 ; $i     

计算机地址输入法教案,智能ABC输入法教案_凌心玉的博客-程序员秘密

智能ABC输入法教案导语:汉字输入技术是用计算机进行文字处理的基础,每个同学必须掌握一至二种汉字输入法,智能abc输入法作为一种新型的输入法,很适合青少年朋友们学习掌握。下面的是百分网小编为大家搜集的智能ABC输入法教案,欢迎阅读,谢谢!课题:(第三单 第2节第2课~第3课)教学目的:(1) 了解智能abc输入法的特点和功能。(2) 初步掌握智能abc输入法的使用。教学过程:引言: 汉字输入技术是...

Android开发学习之路--性能优化之常用工具_force gpu rendering_东月之神的博客-程序员秘密

android性能优化相关的开发工具有很多很多种,这里对如下六个工具做个简单的使用介绍,主要有Android开发者选项,分析具体耗时的Trace view,布局复杂度工具Hierarchy View,应用启动时间,Memory、CPU、Network分析,静态代码检查工具Lint以及程序稳定性monkey。下面就开始学习下这些工具吧。一、Android开发者选项  Andorid开发工具众多,首先就

推荐文章

热门文章

相关标签