飞道的博客

第十二届蓝桥杯模拟赛Python组(第一期)

459人阅读  评论(0)

第十二届蓝桥杯模拟赛Python组(第一期)

第一题

问题描述

如果整数a是整数b的整数倍,则称b是a的约数。
请问,有多少个正整数是2020的约数。

答案提交

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

'''
思路:就暴力for循环
'''
#代码
if __name__ == '__main__':

	lst = []
	for i in range(1,2021):
		if 2020%i == 0:
			lst.append(i)
	print(len(lst))
#结果
12

第二题

问题描述

如果一个mp3文件占用磁盘的大小是4MB,小蓝的硬盘还剩下100GB的空间,请问他还可以放多少个这样的mp3文
件?

答案提交

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

'''
思路:1GB=1024MB
'''
#代码
if __name__ == '__main__':

	print(int(100*1024//4))
#结果
25600

第三题

问题描述

一个包含2020个结点的无向图,如果图中没有自环和重边,最多包含多少条边?

答案提交

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

'''
思路:有向图的个数为无向图的两倍,有向图边为2020*2019;所以无向图2020*2019/2
'''
#代码
if __name__ == '__main__':

	print(2020*2019//2)
#结果
2039190

第四题

'''
思路1:首想字符串拼接,然后len
'''
#代码
if __name__ == '__main__':
	str1 = ''
	for i in range(1,2021):
		str1 += str(i)
	print(len(str1))
#结果
6973
'''
思路2:找规律,毕竟只是求到2020,是定值。当然找到规律后就可以进行通用化处理。
1-9 每个都为1         9
10-99 每个都为2       90*2
100-999 每个都为3	 900*3
1000-2020 每个都为4	 1021*4
'''
#代码
if __name__ == '__main__':
	print(1021*4 + 900*3 + 90*2 + 9)
#结果
6973

第五题

问题描述
在一个列a = (a[1], al[2… a[n])中,如果(ij)满足i <j且a[i]> a[j], 则称为一个逆序对。

例如: (3, 2, 2, 1)中包含6个逆序对。
请问,(87, 39, 35, 1, 99, 10, 54, 1, 46, 24, 74, 62, 49, 13,2, 80, 24, 58, 8, 14, 83, 23, 97, 85,3,2, 86, 10,71,15)中
包含多少个逆序对?

答案提交

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

'''
??疑问:[3,2,2,1]真的有6个吗?我数的是5个
思路:暴力暴力,直接比较
'''
#代码
if __name__ == '__main__':
	lst = [87, 39, 35, 1, 99, 10, 54, 1, 46, 24, 74, 62, 49, 13,2, 80, 24, 58, 8, 14, 83, 23, 97, 85,3,2, 86, 10,71,15]
	# lst = [3,2,2,1]
	print(lst)
	count = 0
	for i in range(len(lst)-1):
		for j in range(i+1,len(lst)):
			if lst[j]<lst[i]:
				count+=1
	print(count)
#结果
217

第六题

问题描述

给定一个三角形的底边长度I和高度h,求三角形的面积。

输入格式

输入的第一行包含一个整数1, 表示三角形的底边长度。
第二行包含一个整数 h,表示三角形的高。

输出格式

输出一个数,表示三角形的面积。如果面积为整数,请直接输出这个整数,不带小数点。如果面积不是整数,请四舍五入保留正好一位小数。
样例输入
5
6
样例输出
15

'''
思路:题目要求咋做就咋做
(题目说明底边和高度都为整数,如果有小数也只能是一位)
'''
#代码
if __name__ == '__main__':
    width = int(input())
    high = int(input())
    if width%2 == 0 or high%2 == 0:
        print(int(width*high/2))
    else:
        print(width*high/2)
#结果

第七题

问题描述
小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。没想到,日记很快就被老师发现了问题,原来小蓝记完8月31日的日记,竟又记了8月32日和8月33日的日记。这显然是有问题的,因为根本没有8月32日和8月33日。给定一个月份和一个日期,请问2021年有没有这一天。

输入格式

输入的第一行包含一个整数 m,表示月份。
第二行包含一个整数d,示日期。

输出格式

如果2021年有m月d日,输入yes,否则输出no。

样例输入

8
32

样例输出

no

'''
思路:题目要求咋做就咋做(注意2月以及大小月)
'''
#代码
if __name__ == '__main__':
    m = int(input())
    d = int(input())
    if (m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12) and d <= 31:
        print('yes')
    elif m == 2 and d <= 28:
        print('yes')
    elif (m == 4 or m == 6 or m == 9 or m == 11) and d <= 30:
        print('yes')
    else:
        print('no')

第八题

问题描述

给定一个单词,请问在单词中删除t个字母后,能得到的字典序最小的单词是什么?

输入格式

输入的第一行包含一个单词, 由大写英文字母组成。
第二行包含一个正整数t.

输出格式

输出一个单词,表示答案

样例输入

LANQIAO
3
样例输出

AIAO

数据规模和约定

对于所有评测用例,单词长度不超过100, t于单词长度。

'''
字典序是指从前到后比较两个字符串的大小的方法。首先比较第一个字符,如果不同则第一个字符较小的字符串更小,如果相同则继续比较第2个字符......如此继续,来比较整个字符串的大小。
思路:进行枚举,然后比较。
'''
#代码
a = input()
    b = int(input())
    while b:
        d = 0
        c = []
        b = b - 1
        for i in range(len(a)):
            c.append(a[:d] + a[d + 1:])
            d = d + 1
        a = min(c)
    print(a)

第九题

问题描述

给定一个序列a 1,a2…a n
其中a1 <a2<… <a n
相邻两个数之间的差(后一个数减前一个数)称为它们的间
隙。
请问序列中最大的间隙值是多少?

输入格式

输入的第一行包含一个整数 n,表示序列的长度。
第二行包含n个正整数,为给定的序列。

输出格式

输出一个整数,表示序列中最大的间隙值。

样例输入

5
1 3 8 9 12

样例输出

5

'''
思路:新建一个列表用来存放差值,然后使用max函数取出最大值。注意输入为0或1的情况
'''
#代码
if __name__ == '__main__':
    num = int(input())
    lst = list(map(int,input().split()))
    lstCount = []
    if num==0 or num==1:
        print(None)
    else:
        for i in range(num-1):
            lstCount.append(lst[i+1]-lst[i])
        print(max(lstCount))

第十题

问题描述

小蓝有黄绿蓝三种颜色的小球,分别为R, G,B个。同样颜色的小球没有区别。

小蓝将这些小球从左到右排成一排,排完后,将最左边的连续同色小球个数记为t1,将接下来的连续小球个数记为t2,以此类推直到最右边的小球。
问,总共有多少总摆放小球的方案,使得t1,t2,… 为严格单调递增序列,即t1 < t2 < t3<…

输入格式

输入一行包含三个整数R, G, B.

输出格式

输出一个整数,表示答案。

样例输入

3 6 0

样例输出

3


转载:https://blog.csdn.net/qq_43710889/article/details/115499357
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场