蓝桥杯冲刺-倒数第八天-省赛题

简介: 蓝桥杯冲刺-倒数第八天-省赛题

成绩统计


小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。


思路


遍历输入全体即可,值得注意的是这道题中用到round(),意为取整函数,以及最后要用f'{}'连接字符串和数字


代码


1. n=int(input())
2. a=[]
3. for i in range(n):
4.     b=int(input())
5.     a.append(b)
6. ans1,ans2=0,0
7. for i in range(n):
8. if 60<=a[i]:
9.     ans1+=1
10. if 85<=a[i]:
11.     ans2+=1
12. 
13. x=round(ans1/n*100)
14. y=round(ans2/n*100)
15. print(f'{x}%')
16. print(f'{y}%')

单词分析


小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。

输入描述

输入一行包含一个单词,单词只由小写英文字母组成。

对于所有的评测用例,输入的单词长度不超过 1000。

输出描述

输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

思路


遍历输入字符串,计算出每个字母的数量,记录最大出现次数和该字母

代码


1. s=input()
2. ls="abcdefghijklmnopqrstuvwxyz"
3. max1=0
4. ans=""
5. for j in ls:
6.     cnt=0
7. for i in range(len(s)):
8. if j==s[i]:
9.             cnt+=1
10. if cnt>max1:
11.         max1=cnt
12.         ans=j
13. print(ans)
14. print(max1)

回文日期


2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,顶多算 “千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

输入描述

输入包含一个八位整数 N,表示日期。

对于所有评测用例,1≤N≤89991231,保证 NN 是一个合法日期的 8 位数表示。

输出描述

输出两行,每行 1 个八位数。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。

思路


将字符传转化成日期格式,让日期自增,再将日期格式转化成字符串,判断是否满足要求

代码


1. import datetime
2. 
3. data=input()
4. y=int(data[:4])
5. m=int(data[4:6])
6. d=int(data[6:8])
7. day1=datetime.date(y,m,d)
8. 
9. flag=1
10. 
11. for n in range(9999):
12. day1=day1+datetime.timedelta(days=1)
13.     s=str(day1).replace("-","")
14. 
15. if s==s[::-1]:
16. if flag:
17.             print(s)
18.             flag=0
19. if  s[1]==s[3]==s[4]==s[6]:
20.             print(s)
21.             break

最短路


如下图所示,G是一个无向图,其中蓝色边的长度是 1、橘色边的长度是 2、绿色边的长度是 3。则从 A 到 S 的最短距离是多少?

思路


这道题可以直接从图中看出来,最小值是6,但我们为了学习一下深度优先搜索,这里认真做一下。 深搜的思路是从A开始出发,向他的邻接点深度搜索,每次深入增加num,即此路径的边长之和。如果找到了S,停止递归,将num存储在列表中。最终输出该列表的最小值,就是我们要的最小路径。

代码


1. r_list = [
2.     ["A", "E", 1],
3.     ["A", "B", 2],
4.     ["A", "C", 1],
5.     ["A", "D", 1],
6.     ["A", "E", 1],
7.     ["B", "G", 1],
8.     ["B", "J", 2],
9.     ["C", "D", 3],
10.     ["C", "G", 3],
11.     ["C", "F", 3],
12.     ["D", "G", 2],
13.     ["D", "H", 1],
14.     ["D", "I", 2],
15.     ["E", "H", 1],
16.     ["E", "I", 3],
17.     ["F", "J", 1],
18.     ["F", "G", 1],
19.     ["G", "K", 2],
20.     ["G", "I", 3],
21.     ["H", "L", 2],
22.     ["H", "I", 1],
23.     ["I", "M", 3],
24.     ["J", "S", 2],
25.     ["K", "N", 1],
26.     ["K", "L", 3],
27.     ["L", "R", 1],
28.     ["L", "M", 1],
29.     ["M", "N", 2],
30.     ["M", "Q", 1],
31.     ["M", "S", 1],
32.     ["N", "P", 1],
33.     ["Q", "O", 1],
34.     ["O", "R", 3],
35.     ["P", "O", 1],
36.     ["R", "S", 1],
37. ]
38. 
39. nums=[]
40. 
41. def dfs(num,r):
42. for y in r_list:
43. if y[0]==r[1]:
44.             num+=y[2]
45. if y[1]=='S':
46.                 nums.append(num)
47. else:
48.                 dfs(num,y)
49. for w in r_list:
50. 
51. if w[0]=='A':
52.         dfs(w[2],w)
53. print(min(nums))

货物摆放


小蓝有一个超大的仓库,可以摆放很多货物。

现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。

小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 L、W、H 的货物,满足n=L×W×H。

给定 nn,请问有多少种堆放货物的方案满足要求。

例如,当 n=4 时,有以下 6 种方案:1×1×4、1×2×2、1×4×1、2×1×2、2 × 2 × 1、4 × 1 × 11×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1。

请问,当 n = 2021041820210418(注意有 16 位数字)时,总共有多少种方案?

思路


题目要我们找到满足n=L×W×H的方案有多少个,很自然的想到遍历所有数,找到符合条件的三个数的方法,但是这样花费时间太多,我们注意到L,W,H这三个数都可以整除n的数,所以我们先找到n的所有约数,然后在约数中即可

代码


1. n=2021041820210418
2. cnt=0
3. 
4. ans=[]
5. for i in range(1,int((n)**0.5+1)):
6. if n%i==0 :
7.     ans.append(i)
8.     ans.append(n//i)
9. 
10. for i in ans:
11. for j in ans:
12. if (n/i)%j==0:
13.         cnt+=1
14. print(cnt)
目录
相关文章
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
102 1
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
142 0
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
108 0
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
125 0
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
45 0
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
106 0
【蓝桥杯嵌入式】蓝桥杯嵌入式第十二届省赛题,考点:模拟电压,串口通信,计时器
【蓝桥杯嵌入式】蓝桥杯嵌入式第十二届省赛题,考点:模拟电压,串口通信,计时器
247 0
|
机器学习/深度学习 Python
【蓝桥杯真题】16天冲刺 Python
【蓝桥杯真题】16天冲刺 Python
216 0
【蓝桥杯真题】16天冲刺 Python
|
算法 Python 容器
【蓝桥杯真题】18天Python组冲刺 心得总结
【蓝桥杯真题】18天Python组冲刺 心得总结
181 0
【蓝桥杯真题】18天Python组冲刺 心得总结
|
算法
蓝桥杯真题31日冲刺国一 | 每日题解报告 第三十一天
大家好啊,我是泡泡,今天是我们蓝桥杯打卡最后一天了,后天也就比赛了,明天大家把各种类型的题目复习一下,我中午会发出最后一篇复习文章,希望各位能拿到自己想要的成绩!陪伴大家这么久了,以后也会继续更新优质算法文章等,各位也不要忘记初心,不要为了比赛而比赛,学到东西才是王道!
184 0