每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
扫码 我的主页 网页左边 群二维码。
加入方式:可以在下方的微信名片加我,然后拉你入群。(记得备注暗号:我要拿国奖)
2020年第十一届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
蛇形填数(题目)
(本题总分:25分)
官方练习系统:https://www.lanqiao.cn/problems/507/learning/
—>【问题描述】

—>【输入描述】

—>【输出描述】
输出一行包含一个整数,表示能够得到的最大价值。
—>【输入输出样例】
—>【样例说明】
按照如下方式镶嵌珠子得到最大价值 18,括号内表示镶嵌的装饰珠的种类编号:
4 颗技能 1 装饰珠,4 颗技能 2 装饰珠 W 1 ( 4 ) + W 2 ( 4 ) = 5 + 15 = 20 W_1(4) + W_2(4) = 5 + 15 = 20 W1(4)+W2(4)=5+15=20。
解析
通过阅读题干,本题——难度中上:⭐⭐⭐⭐
考察类型:数论
考察知识点:动态规划+枚举
分析:
由于是填空题,我们只需要得出一个结果即可。结果为一个整数。
代码
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
今天开刷第 六 天,难度中上,欢迎大家加入,一起变强,一起自律,一起上国赛!!!
今天的题目有点难度哈,有不同解法的可以在下面留言哦!~
往期刷题路线:
刷题路线 | Detail |
---|---|
Day-01 | 门牌制作 |
Day-02 | 寻找2020 |
Day-03 | 跑步锻炼 |
Day-04 | 蛇形填数 |
Day-05 | 排序 |
官方刷题练习系统:http://lx.lanqiao.cn/
ღ( ´・ᴗ・` )
❤