1.单词分析*
字符串+暴力
题目描述
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
输入描述
输入一行包含一个单词,单词只由小写英文字母组成。
对于所有的评测用例,输入的单词长度不超过 1000。
输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
输入输出样例
示例 1
输入
lanqiao
copy
输出
a
2
copy
示例 2
输入
longlonglongistoolong
copy
输出
o
6
copy
运行限制
最大运行时间:1s
最大运行内存: 256M
题解:
import os
import sys
# 请在此输入您的代码
word = input()
num = 0
b = []
for i in word:
tmp = word.count(i)
if tmp >= num:
num = tmp
for j in word:
if word.count(j)==num:
b.append(j)
b.sort()
print(b[0])
print(num)
2022年省赛
1.九进制转十进制
python的次方表示
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
九进制正整数 (2022)_9(2022)
9
转换成十进制等于多少?
运行限制
最大运行时间:1s
最大运行内存: 512M
代码:
import os
import sys
# 请在此输入您的代码
ans = 2+2*9+2*9**3
print(ans)
2.裁纸刀 ×
问题描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝有一个裁纸刀,每次可以将一张纸沿一条直线裁成两半。
小蓝用一张纸打印出两行三列共 6 个二维码,至少使用九次裁出来,下图给出了一种裁法。
图片描述
在上面的例子中,小蓝的打印机没办法打印到边缘,所以边缘至少要裁 4 次。另外,小蓝每次只能裁一张纸,不能重叠或者拼起来裁。
如果小蓝要用一张纸打印出 20 行 22 列共 440 个二维码,他至少需要裁多少次?
运行限制
最大运行时间:1s
最大运行内存: 256M
代码:
import os
import sys
# 请在此输入您的代码
# 我靠,这个题目当时好像没看懂什么意思
ans = 4+19+21*20
print(ans)
3.求和 ×
问题描述
给定 nn 个整数 a_1, a_2, · · · , a_na 1
,a 2 ,⋅⋅⋅,a n ,求它们两两相乘再相加的和,即:
S=a_{1} \cdot a_{2}+a_{1} \cdot a_{3}+\cdots+a_{1} \cdot a_{n}+a_{2} \cdot a_{3}+\cdots+a_{n-2} \cdot a_{n-1}+a_{n-2} \cdot a_{n}+a_{n-1} \cdot a_{n}
S=a 1 ⋅a 2 +a 1 ⋅a 3 +⋯+a 1 ⋅a n +a 2⋅a 3 +⋯+a n−2 ⋅a n−1 +a n−2 ⋅a n
+a n−1 ⋅a n
输入格式
输入的第一行包含一个整数 nn。
第二行包含 nn 个整数
输出格式
输出一个整数 SS,表示所求的和。请使用合适的数据类型进行运算。
样例输入
4
1 3 6 9
copy
样例输出
117
copy
评测用例规模与约定
对于 30 %30% 的数据,1 \leq n \leq 1000,1 \leq a_{i} \leq 1001≤n≤1000,1≤a
i
≤100 。
对于所有评测用例, 1 \leq n \leq 200000,1 \leq a_{i} \leq 10001≤n≤200000,1≤a
i
≤1000 。
运行限制
最大运行时间:1s
最大运行内存: 512M
代码:
import os
import sys
# 请在此输入您的代码
a = input()
b = list(map(int,input().split(' ')))
# print(b)
ans = 0
d = sum(b)
for i in b:
d = d-i
ans += i*d
print(ans)
4.修剪灌木 ×
之前题目意思没搞懂
问题描述
爱丽丝要完成一项修剪灌木的工作。
有 NN 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌 木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。
灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的 早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。
输入格式
一个正整数 NN, 含义如题面所述。
输出格式
输出 NN 行, 每行一个整数, 第 ii 行表示从左到右第 ii 棵树最高能长到多高。
样例输入
3
copy
样例输出
4
2
4
copy
评测用例规模与约定
对于 30 %30% 的数据, N \leq 10N≤10.
对于 100 %100% 的数据, 1<N \leq 100001<N≤10000.
运行限制
最大运行时间:1s
最大运行内存: 512M
import os
import sys
# 请在此输入您的代码
"""这个当时应该没做出来"""
# 关键:看清题目意思:1.每次会剪光 4.剪得时间和长得时间不同
# 2.同一棵树,有两个成长结果,先左后右和先有后左的结果是不一样
# 3.那个间隔的计算要小心
n = int(input())
for i in range(1,int(n)+1):
ans = max(i-1,n-i)*2
print(ans)
5.排列字母
字典排序
问题描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝要把一个字符串中的字母按其在字母表中的顺序排列。
例如,LANQIAO 排列后为 AAILNOQ。
又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY。
请问对于以下字符串,排列之后字符串是什么?
WHERETHEREISAWILLTHEREISAWAY
运行限制
最大运行时间:1s
最大运行内存: 512M
代码:
import os
import sys
# 请在此输入您的代码
word = input()
dict = {
}
for i in word:
if i in dict.keys():
dict[i] += 1
else:
dict[i] = 1
# print(dict)
dict2 = sorted(dict.items(),key=lambda x:x[0],reverse=False)
# print(dict2)
# print(type(dict2))
for i in range(len(dict2)):
for j in range(int(dict2[i][1])):
print(dict2[i][0],end="")
6.刷题统计
问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 aa 道题目, 周六和周日每天做 bb 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 nn 题?
输入格式
输入一行包含三个整数 a, ba,b 和 nn.
输出格式
输出一个整数代表天数。
样例输入
10 20 99
copy
样例输出
8
copy
评测用例规模与约定
对于 50 %50% 的评测用例, 1 \leq a, b, n \leq 10^{6}1≤a,b,n≤10
6
.
对于 100 %100% 的评测用例, 1 \leq a, b, n \leq 10^{18}1≤a,b,n≤10
18
.
运行限制
最大运行时间:1s
最大运行内存: 256M
import os
import sys
# 请在此输入您的代码
a,b,n = map(int,input().split())
five = a*5
week = five+2*b
day = 0
if n<=five:
if n%a==0:
day = n//a
else:
day = n//a+1
elif n<=week:
if n>five+b:
day = 7
else:
day = 6
else:
day = (n//week)*7
n = n%week
if n<=five:
if n%a==0:
day += n//a#这里搞鬼哦,最后一个测试样例:如果是0,n/a,则是0.0,加上0.0居然会加一
# print(day)这个时候大的数据变成了科学计数法
else:
day += n//a+1
else :
if n>five+b:
day += 7
else:
day += 6
print(int(day))
7.纸张尺寸
问题描述
在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm \times× 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm \times× 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。
输入纸张的名称, 请输出纸张的大小。
输入格式
输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。
输出格式
输出两行,每行包含一个整数,依次表示长边和短边的长度。
样例输入1
A0
copy
样例输出1
1189
841
copy
样例输入 2
A1
copy
样例输出 2
841
594
copy
运行限制
最大运行时间:1s
最大运行内存: 512M
import os
import sys
# 请在此输入您的代码
a0 = [1189,841]
a = a0[0]
b = a0[1]
inn = input()
inn = int(inn[1:])
if inn == 0:
print(a0[0])
print(a0[1])
else:
for i in range(1,inn+1):
if a>b:
a = a//2
else:
b = b//2
if a>b:
print(a)
print(b)
else:
print(b)
print(a)
转载:https://blog.csdn.net/qq_51976555/article/details/128555520