第十三届蓝桥杯省赛Python组
- 试题 A: 排列字母---->5分
- 【问题描述】
- 【答案提交】
- 试题 B: 寻找整数---->5分
- 【问题描述】
- 试题 C: 纸张尺寸---->10分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入1】
- 【样例输出1】
- 【样例输入2】
- 【样例输出2】
- 试题 D: 数位排序---->10分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入】
- 【样例输出】
- 【样例说明】
- 【评测用例规模与约定】
- 试题 E: 蜂巢---->15分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入】
- 【样例输出】
- 【评测用例规模与约定】
- 试题 F: 消除游戏---->15分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入1】
- 【样例输出1】
- 【样例输入2】
- 【样例输出2】
- 【评测用例规模与约定】
- 试题 G: 全排列的价值---->20分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入1】
- 【样例输出1】
- 【样例输入2】
- 【样例输出2】
- 【样例说明】
- 【评测用例规模与约定】
- 试题 H: 技能升级---->20分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入】
- 【样例输出】
- 【评测用例规模与约定】
- 试题 I: 最长不下降子序列---->25分
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入】
- 【样例输出】
- 【评测用例规模与约定】
- 试题 J: 最优清零方案
- 【问题描述】
- 【输入格式】
- 【输出格式】
- 【样例输入】
- 【样例输出】
- 【评测用例规模与约定】
试题 A: 排列字母---->5分
【问题描述】
小蓝要把一个字符串中的字母按其在字母表中的顺序排列。
例如,LANQIAO排列后为AAILNOQ
又如,GOODGOODSTUDYDAYDAYUP排列后为AADDDDDGGOOOOPSTUUYYY
请问对于一下字符串,排列之后字符串是什么?
WHERETHEREISAWILLTHEREISAWAY
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个由大写字母组成的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分
试题 B: 寻找整数---->5分
【问题描述】
有一个不超过1017的正整数n,知道这个数除以2至49后的余数如下表所示,求这个正整数最小是多少。
试题 C: 纸张尺寸---->10分
【问题描述】
在ISO国际标准中定义了A0纸张的大小为1189mm×841mm,将A0纸沿长边对折后为A1纸,大小为841mm×594mm,在对着的过程中长度直接取下整(实际裁剪时可能有损耗)。将A1纸沿长边对折后为A2纸,以此类推。
输入智障的名称,请输出纸张的大小。
【输入格式】
输入一行包含一个字符串表示纸张的名称,该名称一定是A0、A1、A2、A3、A4、A5、A6、A7、A8、A9之一
【输出格式】
输出两行,每行包含一个整数,依次表示长边和短边的长度。
【样例输入1】
A0
【样例输出1】
1189
841
【样例输入2】
A1
【样例输出2】
841
594
试题 D: 数位排序---->10分
【问题描述】
小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。
例如,2022排在409前面,因为2022的数位之和是6,小于409的数位之和13.
又如,6排在2022前面,因为他们的数位之和相等,而6小于2022.
给定正整数n,m,请问对1到n采用这种方法排序时,排在第m个的元素是多少
【输入格式】
输入第一行包含一个正整数n。
第二行包含一个正整数m。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
13
5
【样例输出】
3
【样例说明】
1-13的排序为:1,10,2,11,3,12,4,13,5,6,7,8,9.第5个数为3。
【评测用例规模与约定】
对于30%的评测用例,1 ≤ m ≤ n ≤ 300
对于50%的评测用例,1 ≤ m ≤ n ≤ 1000
对于所有评测用例,1 ≤ m ≤ n ≤ 106
试题 E: 蜂巢---->15分
【问题描述】
蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:0表示正西方向,1表示西偏北60°,2表示东偏北60°,3表示正东,4表示东偏南60°,5表示西偏南60°。
对于给定的一点O,我们以O为原点定义坐标系,如果一个点A由O点先向d方向走p步再向(d+2)mod6方向(d的顺时针120°方向)走q步到达,则这个点的坐标定义为(d,p,q)。在蜂窝中,一个点的坐标可能有多种。
下图给出了点B(0,5,3)和C(2,3,2)的示意。
给定点(d1,p1,q1)和点(d2,p2,q2),请问他们之间最少走多少步可以到达?
【输入格式】
输入一行包含六个整数d1,p1,q1,d2,p2,q2表示两个点的坐标,相邻两个整数之间使用一个空格分隔。
【输出格式】
输出一行包含一个整数表示两点之间最少走多少步可以到达
【样例输入】
0 5 3 2 3 2
【样例输出】
7
【评测用例规模与约定】
对于25%的评测用例,p1,p2 ≤ 103
对于50%的评测用例,p1,p2 ≤ 105
对于75%的评测用例,p1,p2 ≤ 107
对于所有评测用例,0 ≤ d1,d2 ≤ 5,0 ≤ q1 < p1 ≤ 109,0 ≤ q2 < p2 ≤ 109。
试题 F: 消除游戏---->15分
【问题描述】
在一个字符串S中,如果Si = Si-1 且 Si ≠ Si+1,则称Si和Si+1为边缘字符。如果Si ≠ Si-1 且 Si = Si+1,则Si-1和Si也称为边缘字符。其他的字符都不是边缘字符。
对于一个给定的字符串S,一次操作可以一次性删除该字符串中的所有边缘字符(操作后可能产生新的边缘字符)。
请问经过264次操作后,字符串S变成了怎样的字符串,如果结果为空则输出EMPTY。
【输入格式】
输入一行包含一个字符串S。
【输出格式】
输出一行包含一个字符串表示答案,如果结果为空则输出EMPTY。
【样例输入1】
edda
【样例输出1】
EMPTY
【样例输入2】
sdfhhhhcvhhxcxnnnnshh
【样例输出2】
s
【评测用例规模与约定】
对于25%的评测用例,|S| ≤ 103,其中|S|表示S的长度
对于50%的评测用例,|S|~ ≤ 104
对于75%的评测用例,|S| ≤ 105
对于所有评测用例,|S| ≤ 106,S中仅含小写字母
试题 G: 全排列的价值---->20分
【问题描述】
对于一个排列A=(a1,a2…an),定义价值ci为a1至ai-1中小于ai的数的个数,即bi=|{aj|j < i ,aj<ai}|。定义A的价值为∑ni=1Ci。
给定n,求1至n的全排列中所有排列的价值之和。
【输入格式】
输入一行包含一个整数n。
【输出格式】
输出一行包含一个整数表示答案,由于所有排列的价值之和可能很大,请输出这个数除以998244353的余数。
【样例输入1】
3
【样例输出1】
9
【样例输入2】
2022
【样例输出2】
593300958
【样例说明】
(1,2,3):0+1+2=3;
(1,3,2):0+1+1=2;
(2,1,3):0+0+2=2;
(2,3,1):0+1+0=1;
(3,1,2):0+0+1=1;
(3,2,1):0+0+0=0;
故总和为3+2+2+1+1=9
【评测用例规模与约定】
对于40%的评测用例,n ≤ 20
对于70%的评测用例,n ≤ 500
对于所有评测用例,2 ≤ n ≤ 106
试题 H: 技能升级---->20分
【问题描述】
小蓝最近正在玩一款RPG游戏。他的角色一共有N个可以加攻击力的技能。其中第i个技能首次升级可以提升Ai;点攻击力,以后每次升级增加的点数都会减少Bi。[Ai/Bi](上取整)次之后,再升级该技能将不会改变攻击力。
现在小蓝可以总计升级M次技能,他可以任意选择升级的技能和次数。请你计算小蓝最多可以提高多少点攻击力?
【输入格式】
输入第一行包含两个整数N和M。
以下N行每行包含两个整数Ai和Bi。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
3 6
10 5
9 2
8 1
【样例输出】
47
【评测用例规模与约定】
对于40%的评测用例,1≤N,M≤1000
对于60%的评测用例,1 ≤ N ≤ 104,1 ≤ M ≤ 107
对于所有评测用例,1 ≤ N ≤ 105,1 ≤ M ≤ 2 ×109,1 ≤ Ai,Bi ≤ 106
试题 I: 最长不下降子序列---->25分
【问题描述】
给定一个长度为N的整数序列:A1A2…AN。现在你有一次机会,将其中连续的K个数修改成任意一个相同值。请你计算如何修改可以使修改后的数列的最长不下降子序列最长,请输出这个最长的长度。
最长不下降子序列是指序列中的一个子序列,子序列中的每个数不小于在它之前的数。
【输入格式】
输入第一行包含两个整数和K。
第二行包含N个整数A1,A2,…AN。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】
5 1
1 4 2 8 5
【样例输出】
4
【评测用例规模与约定】
对于20%的评测用例,1≤K≤N≤100;
对于30%的评测用例,1≤K≤N≤1000;
对于 50% 的评测用例,1 ≤ K ≤ N ≤ 10000;
对于所有评测用例,1 ≤ K ≤ N ≤ 10 5, 1 ≤ Ai≤ 106。
试题 J: 最优清零方案
【问题描述】
给定一个长度为N的数列A1A2,…AN。现在小蓝想通过若干次操作将这个数列中每个数字清零。
每次操作小蓝可以选择以下两种之一:
1.选择一个大于0的整数,将它减去1;
2.选择连续K个大于0的整数,将它们各减去1。
小蓝最少经过几次操作可以将整个数列清零?
【输入格式】
输入第一行包含两个整数N和K。
第二行包含个整数A1,A2,…,AN
【输出格式】
输出一个整数表示答案。
【样例输入】
4 2
1 2 3 4
【样例输出】
6
【评测用例规模与约定】
对于20%的评测用例,1≤K≤N≤10。
对于40%的评测用例,1≤K≤N≤100。
对于50%的评测用例,1≤K≤N≤1000。
对于60%的评测用例,1≤K≤N≤10000。
对于70%的评测用例,1≤K≤N≤100000。
对于所有评测用例,1≤K≤N≤1000000,0≤Ai≤1000000。