第十一届蓝桥杯大赛第二次模拟(软件类Python3)

第十一届蓝桥杯大赛第二次模拟(软件类Python3)

第十一届蓝桥杯大赛第二次模拟(软件类Python3)

题目以及部分思路原文链接:https://blog.csdn.net/weixin_43964993/article/details/108308834

1. 12.5MB

【问题描述】
在计算机存储中,12.5MB是多少字节?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

''' 思路: 1MB = 1024KB 1KB = 1024B(字节) '''
#实现:
print(int(12.5*1024**2))
#结果
13107200

2. 最多边数

【问题描述】
一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重边)
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

''' 思路: 有向图,最多就是全连接(补充:有向图是无向图的两倍) 有2019个点,每个点都由自身方向到其他点,有2018条。所以2019*2018 '''
#实现:
print(2019*2018)
#结果
4074342

3. 单词重排

【问题描述】
将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
请问,总共能排列如多少个不同的单词。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

python 思路: 排练组合问题:选择两个位置让A占,C72 ,剩下五个进行全排练A55

#实现:
if __name__ == '__main__':
    a = 7*6/2
    b = 1*2*3*4*5
    print(int(a*b))
#结果
2520

​4. 括号序列

【问题描述】
由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

''' 思路:进行枚举 位置1为一个括号共5个 () () () () () (()) () () () (()) () ((())) () (()()) 位置1为两个括号共2个 (()) () () (()) (()) 位置1为三个括号共2个 ((())) () (()()) () 位置1为四个括号共5个 (((()))) (()()()) (()(())) ((())()) ((()())) 5+2+2+5=14 '''
#结果:
14

5. 反倍数

【问题描述】
给定三个整数 a, b, c,如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍,则这个数称为反倍数。
请问在 1 至 n 中有多少个反倍数。
【输入格式】
输入的第一行包含一个整数 n。
第二行包含三个整数 a, b, c,相邻两个数之间用一个空格分隔。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
30
2 3 6
【样例输出】
10
【样例说明】
以下这些数满足要求:1, 5, 7, 11, 13, 17, 19, 23, 25, 29。
【评测用例规模与约定】
对于 40% 的评测用例,1 <= n <= 10000。
对于 80% 的评测用例,1 <= n <= 100000。
对于所有评测用例,1 <= n <= 1000000,1 <= a <= n,1 <= b <= n,1 <= c <= n。

''' 思路1: 一一列举进行比较判断 '''
#实现:
n = int(input())
a,b,c=map(int,input().split())
count = 0
for i in range(1,n+1):
    if i%a!=0 and i%b!=0 and i%c!=0:
        count += 1
print(count)

''' 思路2: 创建一个新列表,如果出现倍数就将其删除 '''
#实现:
n = int(input())
a,b,c=map(int,input().split())
lst = [i for i in range(1,n+1)]
for i in range(1,n+1//min(a,b,c)):
    if i*a in lst:
        lst.remove(i*a)
    if i * b in lst:
        lst.remove(i*b)
    if i * c in lst:
        lst.remove(i*c)
print(len(lst))

6. 凯撒加密

【问题描述】
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
【输入格式】
输入一行,包含一个单词,单词中只包含小写英文字母。
【输出格式】
输出一行,表示加密后的密文。
【样例输入】
lanqiao
【样例输出】
odqtldr
【评测用例规模与约定】
对于所有评测用例,单词中的字母个数不超过100。

''' 思路: 充分利用python中ord()和chr()函数; 特别的需要注意‘xyz’的下一个应该是‘abc’ '''
#实现:
str1 = input()
str2 = ''
for i in str1:
    if 'z'>= i >= 'x':
        str2 += chr(ord(i)-23)
    else:
        str2 += chr(ord(i)+3)
print(str2)

在python中,字符串是不可变对象,不能通过下标的方式直接赋值修改。同样的不可变对象还有:数字、字符串和元组。

7. 螺旋

【问题描述】
对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。
例如,一个 4 行 5 列的螺旋矩阵如下:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
【输入格式】
输入的第一行包含两个整数 n, m,分别表示螺旋矩阵的行数和列数。
第二行包含两个整数 r, c,表示要求的行号和列号。
【输出格式】
输出一个整数,表示螺旋矩阵中第 r 行第 c 列的元素的值。
【样例输入】
4 5
2 2
【样例输出】
15
【评测用例规模与约定】
对于 30% 的评测用例,2 <= n, m <= 20。
对于 70% 的评测用例,2 <= n, m <= 100。
对于所有评测用例,2 <= n, m <= 1000,1 <= r <= n,1 <= c <= m。

''' 思路: 1.首先创建全空矩阵 2.算出生长步长向量 3.根据生长步长向量判断行走方向 4.填充数字 '''
#实现:
n,m = map(int,input().split())
r,c = map(int,input().split())

def Matrix(n,m,r,c):
    #创建空矩阵
    lst = [[None for i in range(m)] for j in range(n)]
    #print(lst)
    #创建生长步长向量
    a = m
    b = n-1
    remote_lst = []
    while a>=1 and b >=1:
        remote_lst.append(a)
        remote_lst.append(b)
        a -= 1
        b -= 1
    remote_lst.append(a)
    #print(remote_lst)

    #给矩阵赋值数字
    lie,hang,rt,count = -1,0,0,0
    for i in range(1,n*m+1):
        if count == remote_lst[rt]:
            count = 0
            rt += 1
        count += 1

        #转向
        if rt % 4 == 0:
            lie +=1
        elif rt % 4 == 1:
            hang +=1
        elif rt % 4 == 2:
            lie -=1
        elif rt % 4 == 3:
            hang -=1
        lst[hang][lie] = i
    #查看螺旋矩阵
    # for i in range(len(lst)):
    # print(lst[i])
    return lst[r-1][c-1]

print(Matrix(n,m,r,c))

8. 摆动序列

【问题描述】
如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。即 a[2i]<a[2i-1], a[2i+1]>a[2i]。
小明想知道,长度为 m,每个数都是 1 到 n 之间的正整数的摆动序列一共有多少个。
【输入格式】
输入一行包含两个整数 m,n。
【输出格式】
输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。
【样例输入】
3 4
【样例输出】
14
【样例说明】
以下是符合要求的摆动序列:
2 1 2
2 1 3
2 1 4
3 1 2
3 1 3
3 1 4
3 2 3
3 2 4
4 1 2
4 1 3
4 1 4
4 2 3
4 2 4
4 3 4
【评测用例规模与约定】
对于 20% 的评测用例,1 <= n, m <= 5;
对于 50% 的评测用例,1 <= n, m <= 10;
对于 80% 的评测用例,1 <= n, m <= 100;
对于所有评测用例,1 <= n, m <= 1000。

9. 通电

【问题描述】
2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。
这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。
现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。
小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄,小明需要花费两个村庄之间的坐标距离加上高度差的平方,形式化描述为坐标为 (x_1, y_1) 高度为 h_1 的村庄与坐标为 (x_2, y_2) 高度为 h_2 的村庄之间连接的费用为
sqrt((x_1-x_2)(x_1-x_2)+(y_1-y_2)(y_1-y_2))+(h_1-h_2)*(h_1-h_2)。
在上式中 sqrt 表示取括号内的平方根。请注意括号的位置,高度的计算方式与横纵坐标的计算方式不同。
由于经费有限,请帮助小明计算他至少要花费多少费用才能使这 n 个村庄都通电。
【输入格式】
输入的第一行包含一个整数 n ,表示村庄的数量。
接下来 n 行,每个三个整数 x, y, h,分别表示一个村庄的横、纵坐标和高度,其中第一个村庄可以建立发电站。
【输出格式】
输出一行,包含一个实数,四舍五入保留 2 位小数,表示答案。
【样例输入】
4
1 1 3
9 9 7
8 8 6
4 5 4
【样例输出】
17.41
【评测用例规模与约定】
对于 30% 的评测用例,1 <= n <= 10;
对于 60% 的评测用例,1 <= n <= 100;
对于所有评测用例,1 <= n <= 1000,0 <= x, y, h <= 10000。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100086.html原文链接:https://javaforall.net

(0)
上一篇 2021年4月19日 上午10:00
下一篇 2021年4月19日 下午1:00


相关推荐

  • javascript动画效果_js动画效果animate

    javascript动画效果_js动画效果animate此案例实现的是侧边栏的滑入与滑出,主要用定时器来实现物体滑动时速度的控制,从而实现滑入滑出效果,下面是效果图:下面是实现的js代码:window.onload=function(){varodiv=document.getElementById(“mydiv”);odiv.onmouseover=function(){

    2022年10月15日
    5
  • Manus火爆背后,AI Agen是什么?它怎样影响普通人和企业?

    Manus火爆背后,AI Agen是什么?它怎样影响普通人和企业?

    2026年3月15日
    2
  • git已经提交的文件回复忽略「建议收藏」

    git已经提交的文件回复忽略「建议收藏」将文件加入到忽略文件中使用命令,已提交的文件如何恢复忽略git rm –cached 文件git rm –cached -r 文件夹git rm –cached .push到远程

    2022年8月8日
    6
  • java高级面试题及答案

    java高级面试题及答案前言Linux网络协议栈是根据TCP/IP模型来实现的,TCP/IP模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过socket接口,于是就会发生系统调用,把应用层的数据拷贝到内核里的socket层,接着由网络协议栈从上到下逐层处理后,最后才会送到网卡发送出去。而对于接收网络包时,同样也要经过网络协议逐层处理,不过处理的方向与发送数据时是相反的,也就是从下到上的逐层处理,最后才送到应用程序。网络的速度往往跟用户体验是挂钩

    2022年7月9日
    23
  • HCL配置静态路由ECMP实验

    HCL配置静态路由ECMP实验静态路由实现路由备份和负载分担路由备份 到相同目的地地址的下一跳和优先级都不同优先级高的为主 低的为备负载分担 到相同目的地址的下一跳不同 但优先级相同到目的地的流量将均匀分布实验拓扑配置时需注意 所有路由器上都必须配置到所有网段的路由下一跳地址须为直连链路上可达的地址配置命令如下 两台 PC 机如拓扑图所示 为其加上 IP 地址和掩码以及网关注 PC 机点了启用后也可

    2026年3月16日
    4
  • VMware vSphere系列教程-创建虚拟机(三)

    VMware vSphere系列教程-创建虚拟机(三)

    2022年4月2日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号