一、实操题
1、二进制位数
十进制整数2在十进制中是1位数,在二进制中对应10,是2位数。
十进制整数22在十进制中是2位数,在二进制中对应10110,是5位数。
请问十进制整数2022在二进制中是几位数?
参考答案:十进制整数2022在二进制中是11位数。
2、晨跑
小蓝每周六、周日都晨跑,每月的1、11、21、31日也晨跑。其它时间不晨跑。
已知2022年1月1日是周六,请问小蓝整个2022年晨跑多少天?
参考答案:小蓝在2022年晨跑的天数为:104天。
3、调和级数
小蓝特别喜欢调和级数S(n) =1/1+1/2+1/3+1/4+..+1/n。
请问,n至少为多大时,S(n) > 12 ?
参考答案:我们需要计算调和级数S(n) = 1/1 + 1/2 + 1/3 + ... + 1/n,并找出当S(n) > 12时,n的最小值。
4、山谷
给定一个字母矩阵,如果矩阵中的某个位置不在四条边上,而且该位置上的字母小于其上下左右四个位置的字母,则称为一个山谷。
例如,对于如下矩阵
DDDDD
CADCE
FFFFA
共有两个山谷,位于第二行第二列和第四列。请注意第二行第三列和第三行第五列都不是山谷。
对于如下30行60列的字母矩阵(请用等宽字体查看),请问有多少个山谷?
PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFOZVSRTKJPREPGGXRPNRVY
STMWCYSYYCQPEVIKEFFMZNIMKKASVWSRENZKYCXFXTLSGYPSFADPOOEFXZBC
OEJUVPVABOYGPOEYLFPBNPLJVRVIPYAMYEHWQNQRQPMXUJJLOOVAOWUXWHMS
NCBXCOKSFZKVATXDKNLYJYHFIXJSWNKKUFNUXXZRZBMNMGQOOKETLYHNKOAU
GZQRCDDIUTEIOJWAYYZPVSCMPSAJLFVGUBFAAOVLZYLNTRKDCPWSRTESJWHD
IZCOBZCNFWLQIJTVDWVXHRCBLDVGYLWGBUSBMBORXTLHCSMPXOHGMGNKEUFD
XOTOGBGXPEYANFETCUKEPZSHKLJUGGGEKJDQZJENPEVQGXIEPJSRDZJAZUJL
LCHHBFQMKIMWZOBIWYBXDUUNFSKSRSRTEKMQDCYZJEEUHMSRQCOZIJIPFION
EEDDPSZRNAVYMMTATBDZQSOEMUVNPPPSUACBAZUXMHECTHLEGRPUNKDMBPPW
EQTGJOPARMOWZDQYOXYTJBBHAWDYDCPRJBXPHOOHPKWQYUHRQZHNBNFUVQNQ
QLRZJPXIOGVLIEXDZUZOSRKRUSVOJBRZMWZPOWKJILEFRAAMDIGPNPUUHGXP
QNJWJMWAXXMNSNHHLQQRZUDLTFZOTCJTNZXUGLSDSMZCNOCKVFAJFRMXOTHO
WKBJZWUCWLJFRIMPMYHCHZRIWKBARXBGFCBCEYHJUGIXWTBVTREHBBCPXIFB
XVFBCGKCFQCKCOTZGKUBMJRMBSZTSSHFROEFWSJRXJHGUZYUPZWWEIQURPIX
IQFLDUUVEOOWQCUDHNEFNJHAIMUCZFSKUIDUBURISWTBRECUYKABFCVKDZEZ
TOIDUKUHJZEFCZZZBFKQDPQZIKFOBUCDHTHXDJGKJELRLPAXAMCEROSWITDP
TPCCLIFKELJYTIHRCQAYBNEFXNXVGZEDYYHNGYCDRUDMPHMECKOTRWOSPOFG
HFOZQVLQFXWWKMFXDYYGMDCASZSGOVSODKJGHCWMBMXRMHUYFYQGAJQKCKLZ
NAYXQKQOYZWMYUBZAZCPKHKTKYDZIVCUYPURFMBISGEKYRGZVXDHPOAMVAFY
RARXSVKHTQDIHERSIGBHZJZUJXMMYSPNARAEWKEGJCCVHHRJVBJTSQDJOOTG
PKNFPFYCGFIEOWQRWWWPZSQMETOGEPSPXNVJIUPALYYNMKMNUVKLHSECDWRA
CGFMZKGIPDFODKJMJQWIQPUOQHIMVFVUZWYVIJGFULLKJDUHSJAFBTLKMFQR
MYJFJNHHSSQCTYDTEAMDCJBPRHTNEGYIWXGCJWLGRSMEAEARWTVJSJBAOIOJ
LWHYPNVRUIHOSWKIFYGTYDHACWYHSGEWZMTGONZLTJHGAUHNIHREQGJFWKJS
MTPJHAEFQZAAULDRCHJCCDYRFVVRIVUYEEGFIVDRCYGURQDREDAKUBNFGUPR
OQYLOBCWQXKZMAUSJGMHCMHGDNMPHNQKAMHURKTRFFACLVGRZKKLDACLLTEO
JOMONXRQYJZGINRNNZWACXXAEDRWUDXZRFUSEWJTBOXVYNFHKSTCENAUMNDD
XFDMVZCAUTDCCKXAAYDZSXTTOBBGQNGVVPJGOJOGLMKXGBFCPYPCKQCHBDDZ
WRXBZMQRLXVOBTWHXGINFGFRCCLMZNMJUGWWBSQFCIHUBSJOLLMSQSGHMCPH
ELSOTFLBGSFNPCUZSRUPCHYNVZHCPQUGRIWNIQXDFJPWPXFBLKPNPEELFJMT
参考答案:根据给定的矩阵,共有10个山谷。
5、最小矩阵
小蓝有一个100行100列的矩阵,矩阵的左上角为1。其它每个位置正好比其左边的数大2,比其上边的数大1。
例如,第1行第2列为3,第2行第2列为4,第10行第20列为48。
小蓝想在矩阵中找到一个由连续的若干行、连续的若干列组成的子矩阵,使得其和为2022,请问这个子矩阵中至少包含多少个元素(即子矩阵的行数和列数的乘积)。
参考答案:由于矩阵的生成规律,我们可以通过数学公式来找到规律,然后计算符合条件的子矩阵的最小面积。
6、核酸日期
如果周一做核酸,周二显示核酸天数为1天,周三显示2天,以此类推,周六显示5天,周日显示6天。
小蓝在某一天做了一次核酸,请问他的核酸显示为几天。已知做核酸和查看核酸不是在同一天,而且相差不超过6天(显示的数为1到6之间的数)。
输入格式
输入第一行包含一个整数s,表示小蓝做核酸是周几。s为1到6依次表示周一到周六,s为7表示周日。
第二行包含一个整数t,表示查看核酸是周几。t为1到6依次表示周一到周六,t为7表示周日。
输出格式
输出一行包含一个整数,表示答案。
样例输入
5 2
样例输出
4
评测用例规模与约定
对于所有评测用例,1<=s,t<=7。
参考答案:1
7、英文转换
输入一个由小写英文字母组成的字符串,请将其中的元音字母(a,e,i,o,u)转换成大写,其它字母仍然保持小写。
输入格式
输入一行包含一个字符串。
输出格式
输出转换后的字符串。
样例输入
lanqiao
样例输出
lAnqlAO
评测用例规模与约定
对于所有评测用例,字符串的长度不超过100。
参考答案:对于输入的字符串,我们需要遍历每个字符,检查它是否为元音字母。如果是,就将其转换为大写;如果不是,就保持原样。
8、充电器
小蓝有一个充电器,可以使用不同的电压和电流充电。
给定充电器工作的记录,请计算在这个记录期间总共通过充电传输了多少电能。
输入格式
输入第一行包含一个整数n,表示记录的条数。
接下来n行,每行包含一个时刻T和两个非负整数U,I,表示在时刻T充电电压变为U(单位伏),电流变为I(单位A)。最后一行满足U和l均为0,在前面的行中也可能出现U、I为0的情况。其中时间表示为HH:MM:SS的格式,时分秒分别用两位十进制数表示(补前导零)。
输入保证时刻依次递增且在00:00:00至23:59:59的区间内,不用考虑跨过零点充电的情况。
输出格式
输出一个整数,表示总共通电的电能为多少焦耳,其中1焦耳等于1伏乘以1安乘以1秒。
样例输入
3 12:00:00 12 1 12:01:02 5 2 12:01:10 0 0
样例输出
824
评测用例规模与约定
对于所有评测用例,1<=n<=100,0<=U,I<=100
参考答案:```#include
9、全相等三角形
给定一个字母矩阵,定义一个LQ三角形为某行中连续的几个字母、某列中连续的几个字母和一条45度的斜线中连续的几个字母组成的等腰直角三角形的边缘部分,其中每条边上的字母数量相等且至少为2。
例如,对于下面的字母矩阵中,所有的字母L组成一个LQ三角形,所有字母Q组成了一个LQ三角形,所有字母C也组成了一个LQ三角形。
如果一个LQ三角形边上的所有字母相等,则称为一个全相等三角形。以三个例子都是全相等三角形。
给定一个字母矩阵,请求其中有多少个全相等三角形。
输入格式
输入第一行包含两个整数n,m,分别表示字母矩阵的行数和列数。
接下来n行,每行m个大写字母,为给定的矩阵。
输出格式
输出一行,包含一个整数,表示答案。
样例输入1
3 4 AAAA ALAQ ALQQ
样例输出1
4
样例输入2
6 7 AAAAAAA ALLLLLA ALQQLAA ALQLAAC ALLAACC ALAACCC
样例输出2
23
评测用例规模与约定
对于50%的评测用例,1<=n,m<=10。对于所有评测用例,1<=n,m<=100。
参考答案:这道题是一道求解全相等三角形数量的算法题。可以使用动态规划来解决这个问题。首先,我们可以定义一个三维数组dp[i][j][k],其中i表示当前行,j表示当前列,k表示当前斜线。dp[i][j][k]表示以(i,j)为右下角的全相等三角形的数量。然后,我们可以使用动态规划的思想,从第一行开始,逐行计算dp数组。对于每一行,我们可以遍历所有的列和斜线,判断当前位置是否能够构成一个全相等三角形。如果可以,则更新dp数组。具体判断条件是:如果当前位置的字母和它的上方、左方、左上方三个位置的字母相等,则可以构成一个全相等三角形。此时,我们需要分别计算以当前位置为右下角的行三角形、列三角形和斜三角形的数量,并将它们累加到dp数组中。最后,输出dp[n][m][k]的最大值即可。
10、最小下标
小蓝有一个由大写字母ABCDEF组成的字符串S,长度为n,字符串的下标依次为0到n-1。
小蓝按照如下方法生成一个无限长的字符串:
首先选定一个0到n-1之间的数,作为初始下标。
从初始下标开始,将下标对应的字符加入到字符串的结尾,将字符的序号(A到F依次对应1到6)与下标相加作为新的下标值,如果下标大于等于n,将其对n求余。重复此过程,即得到无限长的字符串。例如,对于字符串ACDF,当初始下标是0时,生成的字符串为:ACACACACAC...
再如,对于字符串DCBA,当初始下标是1时,生成的字符串为:CDDDDDDDDD.…
给定小蓝的字符串S,请问当初始下标为多少时,生成的字符串最小。
输入格式
输入一行包含一个字符串。
输出格式
输出一行,包含一个整数,为所求的下标,如果有多个下标满足要求,输出最小的那个。
样例输入1
DCBA
样例输出1
3
样例输入2
AAAA
样例输出2
0
评测用例规模与约定
令|S|表示S的长度。
对于30%的评测用例,1<=|S|<=100。
对于50%的评测用例,1<=|S|<=1000。
对于70%的评测用例,1<=|S|<=10000。
对于80%的评测用例,1<=|S|<=100000。
对于所有评测用例,1<=|S|<=1000000。
参考答案:```pythonn = len(input())min_index = 0min_str = ""for i in range(n):str_i = ""index = iwhile True:str_i += chr(ord('A') + index % 6)index = index // 6if index >= n:index %= nif not str_i or str_i[0] > min_str[0]:breakif not str_i or str_i[0] < min_str[0]:min_str = str_imin_index = iprint(min_index)```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!