【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day06 | 装饰珠 | 真题代码解析
每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
2020年第十一届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!

蛇形填数(题目)
(本题总分:25分)
官方练习系统:https://www.lanqiao.cn/problems/507/learning/
—>【问题描述】
<div style="color:orange; border-bottom: 1px solid #d9d9d9; display: inline-block; color: #999; </center>
—>【输入描述】
<div style="color:orange; border-bottom: 1px solid #d9d9d9; display: inline-block; color: #999; </center>
—>【输出描述】
输出一行包含一个整数,表示能够得到的最大价值。
—>【输入输出样例】
输入:
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 装饰珠 。
解析
通过阅读题干,本题——难度中上:⭐⭐⭐⭐
考察类型:数论
考察知识点:动态规划+枚举
分析:
由于是填空题,我们只需要得出一个结果即可。结果为一个整数。
这道题就很有意思了,对于爱玩游戏的工科男,计算这种buff类的题,要是做不出来就有点丢人了(开玩笑,题目还是有一定的难度哈!~)首先得先看懂题干,其实需要理解!
先看一下输入样例:
代码
Python代码实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/2/27 15:04
# @Author : 府学路18号车神
# @Email :yurz_control@163.com
# @File : Day06.py
listlv=[0]*5
listw=[[0 for i in range(8)]for i in range(5)]
listl=[0]*5
listp=[0]*5
#先用列表listlv存储各个等级的装饰孔的数量(例如,listlv[1]=3表示等级为1的装饰孔共3个)
for i in range(6):
listinput=list(map(int,input().split()))
for i in range(1,len(listinput)):
listlv[listinput[i]]+=1
summ=0
m=int(input())
for i in range(m):
listt=list(map(int,input().split()))
listl[listt[0]]=listt[0]
listp[listt[0]]=listt[1]
listw[listt[0]]=[0]+listt[2:]
#按等级从大到小,对于每种等级的装饰珠进行枚举
for i in range(min(listlv[4],listp[4])+1):
for j in range(min(listlv[4]+listlv[3]-i,listp[3])+1):
for k in range(min(listlv[4]+listlv[3]+listlv[2]-j-i,listp[2])+1):
for l in range(min(listlv[4]+listlv[3]+listlv[2]+listlv[1]-j-i-k,listp[1])+1):
summ=max(summ,listw[4][i]+listw[3][j]+listw[2][k]+listw[1][l])
print(summ) # 175
今天的题在系统里面验证的,如果再PyCharm没法验证!~

由此,我们可以快速的出结果为:175
- 点赞
- 收藏
- 关注作者

评论(0)