蓝桥杯 省赛 python_第十一届蓝桥杯软件省级大赛第二场python3,类省赛,Python3
试题 A: 门牌制作
本题总分:5 分
【问题描述】
小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字
符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个
字符 0,2 个字符 1,1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
#A 624
count = 0
for i in range(1,2021):
for j in str(i):
if j == "2":
count += 1
print(count)
试题 B: 寻找 2020
本题总分:5 分
【问题描述】
小蓝有一个数字矩阵,里面只包含数字 0 和 2。小蓝很喜欢 2020,他想找
到这个数字矩阵中有多少个 2020 。
小蓝只关注三种构成 2020 的方式:
• 同一行里面连续四个字符从左到右构成 2020。
• 同一列里面连续四个字符从上到下构成 2020。
• 在一条从左上到右下的斜线上连续四个字符,从左上到右下构成 2020。
例如,对于下面的矩阵:
220000
000000
002202
000000
000022
002020
一共有 5 个 2020。其中 1 个是在同一行里的,1 个是在同一列里的,3 个
是斜线上的。
小蓝的矩阵比上面的矩阵要大,由于太大了,他只好将这个矩阵放在了一
个文件里面,在试题目录下有一个文件 2020.txt,里面给出了小蓝的矩阵。
请帮助小蓝确定在他的矩阵中有多少个 2020。
matrix = [[2,2,0,0,0,0],[0,0,0,0,0,0],[0,0,2,2,0,2],[0,0,0,0,0,0],\
[0,0,0,0,2,2],[0,0,2,0,2,0]]
row = len(matrix)
col = len(matrix[0])
count = 0
for i in range(row):
for j in range(col):
if j+3 < col:
if str(matrix[i][j])+str(matrix[i][j+1])+str(matrix[i][j+2])\
+str(matrix[i][j+3]) == "2020":
count += 1
if i+3 < row:
if str(matrix[i][j])+str(matrix[i+1][j])+str(matrix[i+2][j])\
+str(matrix[i+3][j]) == "2020":
count += 1
if i+3 < row and j+3 < col:
if str(matrix[i][j])+str(matrix[i+1][j+1])+str(matrix[i+2][j+2])\
+str(matrix[i+3][j+3]) == "2020":
count += 1
print(count)
试题 C: 跑步锻炼
本题总分:10 分
【问题描述】
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了
激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
from datetime import *
start = date(2000,1,1)
end = date(2020,10,1)
days = timedelta(days=1)
res = 0
while start <= end:
if start.day==1 or start.weekday()==0:
res += 2
else:
res += 1
start += days
print(res)
试题 D: 蛇形填数
本题总分:10 分
【问题描述】
如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …
…
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列
的数是多少?
matrix = [[0 for i in range(50)] for i in range(50)]
matrix[0][0] = 1
row = len(matrix)
col = len(matrix)
i=0
j=0
for k in range(20):
if i == 0 and j % 2 == 0:
j += 1
matrix[i][j] = matrix[i][j-1] + 1
while j > 0:
matrix[i+1][j-1] = matrix[i][j] + 1
i += 1
j -= 1
if j == 0 and i % 2 == 1:
i += 1
matrix[i][j] = matrix[i-1][j] + 1
while i > 0:
matrix[i-1][j+1] = matrix[i][j] + 1
i -= 1
j += 1
print(matrix[20][20])
试题 E: 排序
本题总分:15 分
【问题描述】
小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。
在冒泡排序中,每次只能交换相邻的两个元素。
小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,
则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。
例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,
总共需要 4 次交换。
小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交
换,可是他忘了吧这个字符串记下来,现在找不到了。
请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对
该串的字符排序,正好需要 100 次交换。如果可能找到多个,请告诉小蓝最短
的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符
串中可以包含相同的字符。
def bubble_sort(alist):
count = 0
for i in range(len(alist)-1,0,-1):
for j in range(i):
if alist[j] > alist[j+1]:
alist[j],alist[j+1] = alist[j+1],alist[j]
count += 1
print(count)
a = list('jonmlkihgfedcba')
bubble_sort(a)
print(a)
试题 F: 成绩统计
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是
一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整
数。
【输入格式】
输入的第一行包含一个整数 n,表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
【输出格式】
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分
四舍五入保留整数。
【样例输入】
7
80
92
56
74
88
100
0
试题F: 成绩统计 7
第十一届蓝桥杯大赛软件类省赛第二场 Python 大学组
【样例输出】
71%
43%
n = int(input())
excellence = 0
passing = 0
for i in range(n):
score = int(input())
if score >= 85:
excellence += 1
if score >= 60:
passing += 1
print(str(round(passing/n*100))+"%")
print(str(round(excellence/n*100))+"%")
试题 G: 单词分析
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组
成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不
住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得
最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这
个字母出现的次数。
【输入格式】
输入一行包含一个单词,单词只由小写英文字母组成。
【输出格式】
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪
个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
【样例输入】
lanqiao
【样例输出】
a
2
【样例输入】
longlonglongistoolong
试题G: 单词分析 9
第十一届蓝桥杯大赛软件类省赛第二场 Python 大学组
【样例输出】
o
6
【评测用例规模与约定】
对于所有的评测用例,输入的单词长度不超过 1000。
alphabet = input()
lst = [0] * 26
for s in alphabet:
lst[ord(s)-97] += 1
max_ = max(lst)
for i in range(len(lst)):
if lst[i] == max_:
print(chr(97+i))
print(lst[i])
试题 H: 数字三角形
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。
对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最
大的和。
路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右
边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。
【输入格式】
输入的第一行包含一个整数 N (1 < N ≤ 100),表示三角形的行数。下面的
N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。
【输出格式】
输出一个整数,表示答案。
【样例输入】
5
7
3 8
8 1 0
2 7 4 4
试题H: 数字三角形 11
第十一届蓝桥杯大赛软件类省赛第二场 Python 大学组
4 5 2 6 5
【样例输出】
27
n = int(input())
lst = []
for i in range(n):
lst.append(list(map(int,input().split())))
for index,num in enumerate(lst):
if index == 0: continue
for i in range(len(num)):
if i == 0:
lst[index][i] = lst[index-1][i]+num[i]
elif i == len(num)-1:
lst[index][i] = lst[index-1][i-1]+num[i]
else:
lst[index][i] = max(lst[index-1][i-1],lst[index-1][i])+num[i]
l = len(lst[-1])
if l % 2 == 0:
print(max(lst[-1][l//2-1],lst[-1][l//2]))
else:
print(lst[-1][l//2])
试题 I: 平面切分
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
平面上有 N 条直线,其中第 i 条直线是 y = Ai
· x + Bi。
请计算这些直线将平面分成了几个部分。
【输入格式】
第一行包含一个整数 N。
以下 N 行,每行包含两个整数 Ai
, Bi。
【输出格式】
一个整数代表答案。
【样例输入】
3
1 1
2 2
3 3
【样例输出】
6
【评测用例规模与约定】
对于 50% 的评测用例,1 ≤ N ≤ 4, −10 ≤ Ai
, Bi ≤ 10。
对于所有评测用例,1 ≤ N ≤ 1000, −100000 ≤ Ai
, Bi ≤ 100000。
def relation(n):
flag = True
for i in range(n):
for j in range(i+1, n):
if line[i][0] != line[j][0]:
flag = False # 不平行,求交点
x = -(line[i][1] - line[j][1]) / (line[i][0] - line[j][0])
y = line[i][0] * x + line[i][1]
point.add((x, y))
break
if flag: # 所有的线都平行
return n + 1
else:
if len(point) == 1: # 所有的线相较于1个点
return 2 * n
else: # 超过2个交点
return 2 * n + 1
n = int(input())
line = []
point = set()
for i in range(n):
a, b = list(map(int, input().split()))
line.append([a,b])
print(relation(n))
试题 J: 装饰珠
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
在怪物猎人这一款游戏中,玩家可以通过给装备镶嵌不同的装饰珠来获取
相应的技能,以提升自己的战斗能力。
已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰
孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶
嵌)。
装饰珠有 M 种,编号 1 至 M,分别对应 M 种技能,第 i 种装饰珠的等级
为 Li,只能镶嵌在等级大于等于 Li 的装饰孔中。
对第 i 种技能来说,当装备相应技能的装饰珠数量达到 Ki 个时,会产生
Wi(Ki) 的价值。镶嵌同类技能的数量越多,产生的价值越大,即 Wi(Ki − 1) <
Wi(Ki)。但每个技能都有上限 Pi(1 ≤ Pi ≤ 7),当装备的珠子数量超过 Pi 时,只
会产生 Wi(Pi) 的价值。
对于给定的装备和装饰珠数据,求解如何镶嵌装饰珠,使得 6 件装备能得
到的总价值达到最大。
【输入格式】
输入的第 1 至 6 行,包含 6 件装备的描述。其中第 i 的第一个整数 Ni 表示
第 i 件装备的装饰孔数量。后面紧接着 Ni 个整数,分别表示该装备上每个装饰
孔的等级 L(1 ≤ L ≤ 4)。
第 7 行包含一个正整数 M,表示装饰珠 (技能) 种类数量。
第 8 至 M + 7 行,每行描述一种装饰珠 (技能) 的情况。每行的前两个整数
Lj(1 ≤ Lj ≤ 4) 和 Pj(1 ≤ Pi ≤ 7) 分别表示第 j 种装饰珠的等级和上限。接下来
Pj 个整数,其中第 k 个数表示装备该中装饰珠数量为 k 时的价值 Wj(k)。
试题 J: 装饰珠 14
第十一届蓝桥杯大赛软件类省赛第二场 Python 大学组
【输出格式】
输出一行包含一个整数,表示能够得到的最大价值。
【样例输入】
1 1
2 1 2
1 1
2 2 2
1 1
1 3
3
1 5 1 2 3 5 8
2 4 2 4 8 15
3 2 5 10
【样例输出】
20
【样例说明】
按照如下方式镶嵌珠子得到最大价值 18,括号内表示镶嵌的装饰珠的种类
编号:
1: (1)
2: (1) (2)
3: (1)
4: (2) (2)
5: (1)
6: (2)
4 颗技能 1 装饰珠,4 颗技能 2 装饰珠 W1(4) + W2(4) = 5 + 15 = 20。
试题 J: 装饰珠 15
第十一届蓝桥杯大赛软件类省赛第二场 Python 大学组
【评测用例规模与约定】
对于 30% 的评测用例,1 ≤ Ni ≤ 10, 1 ≤ M ≤ 20, 1 ≤ Wj(k) ≤ 500;
对于所有评测用例,1 ≤ Ni ≤ 50, 1 ≤ M ≤ 10000, 1 ≤ Wj(k) ≤ 10000。
等我会了就发
蓝桥杯 省赛 python_第十一届蓝桥杯软件省级大赛第二场python3,类省赛,Python3相关推荐
- 第十一届蓝桥杯python_第十一届蓝桥杯大赛即日启动报名流程
原标题:第十一届蓝桥杯大赛即日启动报名流程 好习惯机器人即日起启动第十一届蓝桥杯全国软件和信息技术专业人才大赛青少组的报名流程,请各位家长抓紧时间和所在校区老师联系,报名参加宝贝合适的项目,预约培训时 ...
- 第四届高教杯计算机绘图教程,第十一届高教杯全国大学生先进成图技术与产品信息建模.PDF...
第十一届高教杯全国大学生先进成图技术与产品信息建模.PDF 第十一届"高教杯"全国大学生先进成图技术 与产品信息建模创新大赛 道桥类竞赛大纲 一.基本知识与技能要求 1.制图基本知 ...
- 【蓝桥杯考前突击】第十一届蓝桥杯省赛C/C++大学B组 试题A 跑步训练
小明要做一个跑步训练.初始时,小明充满体力,体力值计为10000.如果小明跑步,每分钟损耗 600 的体力.如果小明休息,每分钟增加300 的体力.体力的损耗和增加都是 均匀变化的.小明打算跑一分钟. ...
- 【蓝桥杯考前突击】第十一届蓝桥杯校赛模拟C/C++ 种草
问题描述小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1.小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地.这些草长得很快,每个月,草都会向外长出一些,如 ...
- 蓝桥杯真题系列:第十一届蓝桥杯C语言B组集锦
第一题:门牌制作 解答:作为填空题第一题,难度比较低,暴力查2即可. cnt = 0 for i in range(1,2021):for j in str(i):if j == '2':cnt = ...
- 蓝桥杯评分标准_第十一届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准
4. 竞赛中,所有的参赛同学使用同一套题目,在同一时间,按照统一评分规则进行比赛.此 次校内选拔赛共有 12 道编程题(其中 6 道基础题, 3 道进阶题, 3 道高阶题),涉及知识点包 括简单数学模 ...
- 第十一届蓝桥杯青少组Python竞赛真题
第十一届蓝桥省赛Python组复盘 第十一届蓝桥省赛Python组复盘_哔哩哔哩_bilibili 蓝桥杯青少组Python竞赛真题讲解 蓝桥杯青少组Python竞赛真题讲解_哔哩哔哩_bilibil ...
- 蓝桥杯单片机第十三届第二场
第十三届蓝桥杯单片机第二场 文章目录 第十三届蓝桥杯单片机第二场 前言 一.赛题分析 二.程序调试步骤 三.部分源程序 主函数部分 DAC处理函数 数码管处理函数 ADC处理函数 超声波处理函数 LE ...
- 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑
题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...
最新文章
- SAP配置webdynpro完全手册
- bank holiday in uk 2020
- 不用eclipse创建第一个servlet
- Redis整合Spring结合使用缓存实例
- JavaScript进行UTF-8编码与解码
- Java技术学习心得
- 自己写的_top、_parent以及对iframe和frameset的理解
- Java基础学习总结(87)——坚持写Java等技术类博客的好处
- 软件设计师12-数据库(数据操作)
- 特朗普前竞选经理犯罪证据曝光,竟是因不会 PDF 转换!
- 设计模式学习笔记(3)装饰器
- 安全运维 - Windows系统维护
- 初始C语言——完数问题
- php 时间转换时间戳_php时间戳与date格式转换
- 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
- 小红书话题笔记是什么意思?话题笔记发布步骤流程分享
- 苹果手机通话没有声音是怎么回事_手机通话声音太小?只需要打开这个开关,声音变大好几倍...
- PDF图纸怎么转成CAD?这个方法了解一下
- 【Maxent】最大熵的数学原理及其在推断问题中的应用
- 解读 ESP32 API参考-system-App Image Format
热门文章
- SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- 系统权限控制设计001---RBAC用户角色权限设计方案
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
- Android异常总结---1.异常原因: java.lang.IllegalArgumentException: URI: content://com.android.contacts/con
- fckeditor组件使用---fckeditor调用的三种方法1
- MongoDB | Mysql亿级别---数据生成及高效率导入
- SVN可视化管理工具——Subversion Edge使用
- 把双系统的linux删除,双系统删除linux
- verilog学习记(开头篇)
- concurrentarraylist_java多线程学习七::::并发下ArrayList和HashMap