[蓝桥杯 2013 国 A] 约数倍数选卡片
题目描述
闲暇时,福尔摩斯和华生玩一个游戏:
在 N N N 张卡片上写有 N N N 个整数。两人轮流拿走一张卡片。要求下一个人拿的数字一定是前一个人拿的数字的约数或倍数。例如,某次福尔摩斯拿走的卡片上写着数字“ 6 6 6 ”,则接下来华生可以拿的数字包括:
1 1 1, 2 2 2, 3 3 3, 6 6 6, 12 12 12, 18 18 18,$24 \cdots $。
当轮到某一方拿卡片时,没有满足要求的卡片可选,则该方为输方。
请你利用计算机的优势计算一下,在已知所有卡片上的数字和可选哪些数字的条件下,怎样选择才能保证必胜!
当选多个数字都可以必胜时,输出其中最小的数字。如果无论如何都会输,则输出 − 1 -1 −1。
输入格式
输入数据为 2 2 2 行。第一行是若干空格分开的整数(每个整数介于 1 ∼ 100 1 \sim 100 1∼100 间),表示当前剩余的所有卡片。
第二行也是若干空格分开的整数,表示可以选的数字。当然,第二行的数字必须完全包含在第一行的数字中。
输出格式
程序则输出必胜的招法!!
样例 #1
样例输入 #1
2 3 6
3 6
样例输出 #1
3
样例 #2
样例输入 #2
1 2 2 3 3 4 5
3 4 5
样例输出 #2
4
提示
时限 1 秒, 64M。蓝桥杯 2013 年第四届国赛
[蓝桥杯 2015 国 AC] 切开字符串
题目描述
Pear 有一个字符串,不过他希望把它切成两段。
这是一个长度为 N N N($ \le 10^5$)的字符串。
Pear 希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是 t t t 和 N − t N-t N−t(这两段都必须非空)。
Pear 用如下方式评估切割的方案:
定义“正回文子串”为:长度为奇数的回文子串。
设切成的两段字符串中,前一段中有 A A A 个不相同的正回文子串,后一段中有 B B B 个不相同的非正回文子串,则该方案的得分为 A × B A \times B A×B。
注意,后一段中的 B B B 表示的是:“ … 非正回文 … ”,而不是:“ … 正回文 … ”。
那么所有的切割方案中, A × B A \times B A×B 的最大值是多少呢?
输入格式
输入第一行一个正整数 N N N($ \le 10^5$)
接下来一行一个字符串,长度为 N N N。该字符串仅包含小写英文字母。
输出格式
一行一个正整数,表示所求的 A × B A \times B A×B 的最大值。
样例 #1
样例输入 #1
10
bbaaabcaba
样例输出 #1
38
提示
对于 20 % 20\% 20% 的数据, N ≤ 100 N \le 100 N≤100。
对于 40 % 40\% 40% 的数据, N ≤ 1000 N \le 1000 N≤1000。
对于 100 % 100\% 100% 的数据, N ≤ 1 0 5 N \le 10^5 N≤105。
时限 1 秒, 512M。蓝桥杯 2015 年第六届国赛
[蓝桥杯 2020 国 ABC] 皮亚诺曲线距离
题目描述
皮亚诺曲线是一条平面内的曲线。
下图给出了皮亚诺曲线的 1 阶情形, 它是从左下角出发, 经过一个 3 × 3 3 \times 3 3×3 的 方格中的每一个格子, 最终到达右上角的一条曲线。
下图给出了皮亚诺曲线的 2 阶情形, 它是经过一个 3 2 × 3 2 3^{2} \times 3^{2} 32×32 的方格中的每一 个格子的一条曲线。它是将 1 阶曲线的每个方格由 1 阶曲线替换而成。
下图给出了皮亚诺曲线的 3 阶情形, 它是经过一个 3 3 × 3 3 3^{3} \times 3^{3} 33×33 的方格中的每一 个格子的一条曲线。它是将 2 阶曲线的每个方格由 1 阶曲线替换而成。
皮亚诺曲线总是从左下角开始出发, 最终到达右上角。
我们将这些格子放到坐标系中, 对于 k k k 阶皮亚诺曲线, 左下角的坐标是 ( 0 , 0 ) (0,0) (0,0), 右上角坐标是 ( 3 k − 1 , 3 k − 1 ) \left(3^{k}-1,3^{k}-1\right) (3k−1,3k−1), 右下角坐标是 ( 3 k − 1 , 0 ) \left(3^{k}-1,0\right) (3k−1,0), 左上角坐标是 ( 0 , 3 k − 1 ) \left(0,3^{k}-1\right) (0,3k−1) 。
给定 k k k 阶皮亚诺曲线上的两个点的坐标, 请问这两个点之间, 如果沿着皮 亚诺曲线走, 距离是多少?
输入格式
输入的第一行包含一个正整数 k k k, 皮亚诺曲线的阶数。
第二行包含两个整数 x 1 , y 1 x_{1}, y_{1} x1,y1, 表示第一个点的坐标。 第三行包含两个整数 x 2 , y 2 x_{2}, y_{2} x2,y2, 表示第二个点的坐标。
输出格式
输出一个整数, 表示给定的两个点之间的距离。
样例 #1
样例输入 #1
1
0 0
2 2
样例输出 #1
8
样例 #2
样例输入 #2
2
0 2
0 3
样例输出 #2
13
提示
对于 30 % 30 \% 30% 的评测用例, 0 ≤ k ≤ 10 0 \leq k \leq 10 0≤k≤10 。
对于 50 % 50 \% 50% 的评测用例, 0 ≤ k ≤ 20 0 \leq k \leq 20 0≤k≤20 。
对于所有评测用例, 0 ≤ k ≤ 100 , 0 ≤ x 1 , y 1 , x 2 , y 2 < 3 k , x 1 , y 1 , x 2 , y 2 ≤ 1 0 18 0 \leq k \leq 100,0 \leq x_{1}, y_{1}, x_{2}, y_{2}<3^{k}, x_{1}, y_{1}, x_{2}, y_{2} \leq 10^{18} 0≤k≤100,0≤x1,y1,x2,y2<3k,x1,y1,x2,y2≤1018 。 数据保证答案不超过 1 0 18 10^{18} 1018 。
蓝桥杯 2020 年国赛 A 组 F 题(B 组 F 题, C 组 H 题)。