C/C++蓝桥杯之整数拼接(较难)

问题描述:给定一个长度为n的数组,A1,A2,...,An你可以从中选出两个数Ai和Aj(i≠j),然后将Ai和Aj一前一后拼成一个新的整数。例如12和345可以拼成12345或34512。注意交换Ai和Aj的顺序总是被视为两种拼法,即便Ai=Aj。请你计算有多少种拼法,满足拼出的整数就是k的倍数。

输入格式:

第一行包含两个整数n和k。

第二行包括n个整数A1,A2,...,An。

输出格式:

一个整数,代表答案。

例如输入:4 2

                 1 2 3 4

输出:6

规定:对于30%的评测用例,1≤n≤1000,1≤K≤20,1≤Ai≤10^4

对于所有评测用例:1≤n≤10^5,1≤K≤10^5,1≤Ai≤10^9

分析:拼接两个整数(如12和345),得到12×1000+345=12345或345*100+12=34512。因此可以得到一个数学等式:拼起来的值为Ai×10^len(Aj)+Aj。

固本题要求满足以下等式的Ai和Aj组合:(Ai×10^len(Aj)+Aj)%K=0-->((Ai×10^len(Aj))%K+Aj%K)%K=0

该式中,将计算拆分成两部分:Q=(Ai×10^len(Aj))%K和P=Aj%K。

(Q+P)%K=0-->Q=(K-P)%K

Q:有两个未知量Ai的值和Aj的长度。

P:有一个未知量Aj的值。

当确定Aj时就可以确定P,通过P的值与K的值,就可以通过Q=(K-P)%K得到Q的值。

结论:当确定Aj时,就可以确定Q和Aj的长度,此时只需要查看有多少个Ai可满足即可。

C++程序:

#include<iostream>
#include<string>
using namespace std;
typedef long long LL;
const int N=100010;
int s[11][N];//表示某个数*10^i%k==j的数量
int n;//表示将要输入的n个数
LL a[N];//存放n个数
int k;//表示k倍
LL res;//表示结果
int main()
{cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){LL t=a[i]%k;for(int j=0;j<11;j++){s[j][t]++;t=t*10%k;}}for(int i=0;i<n;i++){LL t=a[i]%k;int len=to_string(a[i]).size();res+=s[len][(k-t)%k];LL r=t;while(len--){	r=r*10%k;}if(r==(k-t)%k){res--;}}cout<<res<<endl;return 0;
}

此题比较考脑子(较难),可以用伪C或自然语言举几个例子,方便弄懂! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习-05】模型的评估与选择

在前面【机器学习-01】机器学习基本概念与建模流程的文章中我们已经知道了机器学习的一些基本概念和模型构建的流程&#xff0c;本章我们将介绍模型训练出来后如何对模型进行评估和选择等 1、 误差与过拟合 学习器对样本的实际预测结果与真实值之间的差异&#xff0c;我们称之…

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…

Redis 搭建主从集群

文章目录 1. 主从集群架构1.1 准备实例和配置1.2 启动1.3 开启主从关系1.4 测试 2. 主从同步原理2.1 全量同步2.2 增量同步repl_backlog原理 2.3 主从同步优化小结 单节点的 Redis 并发能力有限&#xff0c;要进一步提高 Redis 的并发能力&#xff0c;就需要搭建主从集群&#…

杰发科技AC7801——Flash数据读取

0. 简介 因为需要对Flash做CRC校验&#xff0c;第一步先把flash数据读出来。 1. 代码 代码如下所示 #include "ac780x_eflash.h" #include "string.h" #define TestSize 1024 ///< 4K #define TestAddressStart 0x08000000 uint8_t Data[7000]; int…

力扣爆刷第100天之hot100五连刷86-90

力扣爆刷第100天之hot100五连刷86-90 文章目录 力扣爆刷第100天之hot100五连刷86-90一、139. 单词拆分二、300. 最长递增子序列三、152. 乘积最大子数组四、416. 分割等和子集五、32. 最长有效括号 一、139. 单词拆分 题目链接&#xff1a;https://leetcode.cn/problems/word-…

<DFS剪枝>数字王国之军训排队

DFS剪枝 其实就是将搜索过程一些不必要的部分直接剔除掉。 剪枝是回溯法的一种重要优化手段&#xff0c;往往需要先写一个暴力搜索&#xff0c;然后找到某些特殊的数学关系&#xff0c;或者逻辑关系&#xff0c;通过它们的约束让搜索树尽可能浅而小&#xff0c;从而达到降低时间…

MAC地址(静态、黑洞、优先级)

拓扑图 配置 1&#xff09;静态MAC地址配置 mac-address learning disable命令用来关闭MAC地址学习功能。 关闭MAC地址学习功能后&#xff0c;设备将不会再从该接口学习新的MAC地址。关闭MAC地址学习后可配置的动作有discard和forward。 关闭MAC地址学习功能的缺省动作为fo…

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize 开题&#xff0c;直接给了题目源码。 简单看了一下&#xff0c;题目告诉我们flag在哪&#xff0c;而且类中有高亮文件方法。怎么拿flag已经很明显了。关键点在于__weakup()魔术方法固定死了我们高亮的文件。所以这题只需要绕过__w…

Linux作业

1.创建用户&#xff0c;用户名为user&#xff0c;user02密码均为123.com&#xff0c;创建完成后用tail查看用户是否存在。&#xff08;截图&#xff09;&#xff08;10分&#xff09; 2.在用户user主目录中用mkdir命令创建目录my.txt,在目录my.txt中创建文件a1.txt、1a1.txt、5…

【故障排查】10分钟解决Quartz重复调度的疑难杂症

我司使用Apache DolphinScheduler作为调度框架很久了&#xff0c;感兴趣的小伙伴可以看看这些干货文章&#xff1a; 因为之前监控到会出现重复的调度的问题&#xff0c;所以此文记录排查重复调度问题的全过程&#xff0c;希望对社区其他的小伙伴能够起到抛砖引玉的作用&#x…

dji psdk开发(10)航线任务简介、KMZ文件的解析

航线任务到目前主要使用waypoint v2 和 waypoint v3三个版本。 Waypoint v2.0:只支持 Matrice 300 RTK 和 Matrice 350 RTK。waypoint v3.0:支持 Matrice 30 Series、Mavic 3 Enterprise Series 和 Matrice 3D/3TD 机型,不支持 Matrice 300 RTK 和 Matrice 350 RTK。这里先简…

轻松爬取跨境电商商品数据采集|电商数据API采集接口

跨境电商商品数据集爬取方案 在之前写过一篇关于网页爬取的文章&#xff0c;使用的是亮数据这个工具&#xff0c;并且带领大家进行了注册&#xff0c;介绍了一些相关的功能。现在我们来探索一下如何爬取某大型电商商品数据集 很多电商科技公司以技术驱动的公司&#xff0c;致力…

【学习】python函数语法(面像对象、封装函数)

阅读开源深度学习源码的时候&#xff0c;使用到了很多封装函数以及Python的高级语法&#xff0c;看起来很混乱很痛苦很困难。对python函数语法做个总结&#xff01;&#xff01;&#xff01; Table of Contents 熟练Python语法&#xff0c;尤其是函数参数、迭代器与生成器、函…

使用Redis做缓存的小案例

如果不了解Redis&#xff0c;可以查看本人博客&#xff1a;Redis入门 Redis基于内存&#xff0c;因此查询速度快&#xff0c;常常可以用来作为缓存使用&#xff0c;缓存就是我们在内存中开辟一段区域来存储我们查询比较频繁的数据&#xff0c;这样&#xff0c;我们在下一次查询…

C#,图论与图算法,有向图(Directed Graph)的环(Cycle)的普通判断算法与源代码

1 检查该图是否包含循环 给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。 方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或…

[视觉基础知识]: img to bev # include bev seg

参考&#xff1a;https://towardsdatascience.com/monocular-birds-eye-view-semantic-segmentation-for-autonomous-driving-ee2f771afb59 有源传感器&#xff08;lidar or radar&#xff09;得到的数据&#xff0c;天然就是一种bev表示&#xff08;x-y平面&#xff09;&#…

kafka connect

kafka connect是kafka和外部存储系统交互的工具 bootstrap.servers key.converter&#xff1a;JSON and Avro. value.converter&#xff1a;JSON and Avro. 一、standalone模式 1、在config/connect-standalone.properties中配置 plugin.pathlibs/connect-file-3.6.1.jar 2、在…

如何进行Android的SDK开发

进行Android的SDK开发&#xff0c;需要以下步骤&#xff1a; 安装Android开发工具包&#xff08;Android SDK&#xff09; 首先&#xff0c;需要安装Android开发工具包&#xff08;Android SDK&#xff09;。可以从Google官方网站下载并安装Android Studio&#xff0c;它将包含…

想速成AD?凡亿教育正式上线《Altium Designer 24:150讲操作速成实战课程》

随着电子技术的不断发展,芯片生产工艺迭代更新,印制电路板(PCB)结构日益复杂,从最早的单片机到双面板,再到复杂的多层板结构,电路板上的布线密度越来越高。 同时,随着DSP、ARM、FPGA、DDR等高速逻辑元件的应用,PCB的信号完整性和抗干扰性能显得尤为重要,光靠EDA软件的自动布线…

LeetCode每日一题 翻转二叉树(二叉树)

题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,3,1]示…