3340 问题 E: 蓝桥杯2025年第十六届省赛真题-甘蔗

 时间限制: 1s 内存限制: 128MB
题目描述

小蓝种了一排甘蔗,甘蔗共 n 根,第 i 根甘蔗的高度为 ai 。小蓝想砍一些 甘蔗下来品尝,但是他有强迫症,不希望甘蔗的高度显得乱糟糟的。具体来说, 他给出了一个大小为 m 的整数集合 B = {b1, b2, · · · , bm} ,他希望在砍完甘蔗后, 任意两根相邻的甘蔗之间的高度差 |ai − ai+1| 都要在这个集合 B 中。小蓝想知道 他最少需要砍多少根甘蔗(对于高度为 h 的甘蔗,他可以将其砍成 x 高度的甘 蔗,x ∈ {0, 1, 2, · · · , h − 1} )

输入

输入的第一行包含两个正整数 n, m ,用一个空格分隔。 

第二行包含 n 个正整数 a1, a2, · · · , an ,相邻整数之间使用一个空格分隔。 

第三行包含 m 个正整数 b1, b2, · · · , bm ,相邻整数之间使用一个空格分隔。

输出

输出一行包含一个整数表示答案。如果不能满足条件,输出 −1 。

样例输入

6 3
6 7 3 4 9 12
2 3 5

样例输出

2
提示

【样例说明 1】 

其中一种方案:将 a2 砍为 3 ,再将 a3 砍为 1 。

【样例输入 2】 

2 1 

4 5 

【样例输出 2】

 -1 

【评测用例规模与约定】

 对于 40% 的评测用例,1 ≤ n, m ≤ 8 ; 

对于所有评测用例,1 ≤ n, m ≤ 500 ,1 ≤ ai ≤ 1000 ,0 ≤ bi ≤ 1000 。

比赛公告

2025年第十六届蓝桥杯软件赛省赛C/C++研究生组真题

试题 A: 数位倍数 (本题总分:5 分) 

【问题描述】 

请问在 1 至 202504 (含)中,有多少个数的各个数位之和是 5 的整数倍。 例如:5 、19 、8025 都是这样的数。 

【答案提交】 

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


试题 B: IPv6 (本题总分:5 分) 

【问题描述】 

小蓝最近在学习网络工程相关的知识。他最近学习到,IPv6 地址本质上是 一个 128 位的二进制数,而字符串形式的 IPv6 地址是由被冒号分开的八段 16 进制数组成的, 例如,下面每行是一个字符串形式的 IPv6 地址: 

0000:0000:0000:0000:0000:0000:0000:0000 

0000:0001:0000:0000:0000:0001:0000:0000 

0000:0001:00ab:0000:0023:0000:0a00:0e00 

0000:0000:00ab:0000:000a:0001:0a00:0e00 

0000:0000:00ab:0000:0000:0001:0a00:0e00 

其中,每一段最长 4 位,且每一段的前导零都可以去掉(如果 4 位都为 0 需要写成 0)。 

另外,IPv6 地址还可以将其中相邻的值为 0 的段合并压缩起来,用两个冒 号来表示,不过只能压缩一段。 

例如上述地址最短的压缩后的形式分别为 

:: 

0:1::1:0:0 

0:1:ab::23:0:a00:e00 

::ab:0:a:1:a00:e00 

0:0:ab::1:a00:e00 

小蓝想知道, 所有 IPv6 地址的最短压缩形式的长度的和为多少?由于答案 很大(甚至超过了 128 位二进制整数的范围),请填写答案时填写这个总和除以 109 + 7 的余数。


【答案提交】 

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数(在 0 到 109 + 6 的范围内),在提交答案时只填写这个整数,填写多余的 内容将无法得分。