2021蓝桥杯(Python)骗分指南

明天就考试了,紧张啊~

回顾了一下之前写过的一些程序,把最基本的整理了出来,希望关键时候别再忘了呀!小伙伴们,明天加油!

目录

如何输入1个整数

如何输入两个整数,中间空格隔开

如何输入一行整数,空格隔开,储存至一列表

创建一列表(二维列表、全零列表)

进制转换

储存单位转换问题

有(无)向图 边数问题

二叉树 叶子数问题

Ascii值转换

BFS基本例题

DFS基本例题

BFS最短路径问题


如何输入1个整数

n=int(input())

如何输入两个整数,中间空格隔开

A,B=map(int,input().split(' '))

如何输入一行整数,空格隔开,储存至一列表

nums=[int(i) for i in input().split()]    

创建一列表(二维列表、全零列表)

n=10

a=[[] for i in range(n)]    #二维列表 
>>>a
[[], [], [], [], [], [], [], [], [], []]

c=[[]]*n
>>>c
[[], [], [], [], [], [], [], [], [], []]    #二维列表 



b=[0 for i in range(n)]    #全零列表
>>>b
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

d=[0]*n
>>>d
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]    #全零列表


e=[]*n
>>>e
[]

进制转换

>>>a=bin(5)    #将5转化为二进制
'0b101'


>>> hex(17)    #将十进制17转化为十六进制'0x11'
'0x11'
>>> bin(5)    #将十进制5转化为十六进制'0b101'
'0b101'
>>> oct(9)    #将十进制9转化为八进制'0o11'
'0o11'

>>> int('11',2)    #将二进制'11'转化为十进制3   
3
>>> int('18',16)    #将八进制'18'转化为十进制24   
24
>>> int('24',8)    #将二进制'24'转化为十进制20   
20

储存单位转换问题

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



>>> 12.5*1024*1024
13107200

二进位bit
字节1Byte=8个二进位
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

有(无)向图 边数问题

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


>>> 2019*2018
4074342

有向图: n个节点,最多n(n-1)条边,最少 n 条边
无向图:n个节点,最多 n(n-1)/2 条边,最少n-1 条边(没有自环和重边)

拥有最多边(弧)的图叫完全图。

二叉树 叶子数问题

【问题描述】
一棵包含有2019个结点的二叉树,最多包含多少个叶结点?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

>>>(2019+1)/2

1010

Ascii值转换

AA=ord('a')      # crd()函数就是用来返回单个字符的ascii值(0-255)
BB=chr(65)       # chr()函数是输入一个整数[0,255]返回其对应的ascii符号

>>>print(AA)
97
>>>print(BB)
'A'

BFS基本例题

graph={'A':['B','C'],
       'B':['A','C'],
       'C':['B','A'],
       'D':['B','C','E'],
       'E':['D','C','B'],
       'F':['D']}
def BFS(graph,s):
    queue=[]
    queue.append(s)
    seen=[]
    seen.append(s)
    while len(queue)>0:
        vertex=queue.pop(0)
        nodes=graph[vertex]
        for i in nodes:
            if i not in seen:
                queue.append(i)
                seen.append(i)
        print(vertex)
BFS(graph,'E')


>>> 
E
D
C
B
A

DFS基本例题

graph={'A':['B','C'],
       'B':['A','C','D'],
       'C':['B','A','D','E'],
       'D':['B','C','E','F'],
       'E':['D','C'],
       'F':['D']}
def DFS(graph,s):
    stack=[]
    stack.append(s)
    seen=[]
    seen.append(s)
    while len(stack)>0:
        vertex=stack.pop()
        nodes=graph[vertex]
        for i in nodes:
            if i not in seen:
                stack.append(i)
                seen.append(i)
        print(vertex)
DFS(graph,'E')


>>>
E
C
A
B
D
F

BFS最短路径问题

graph={'A':['B','C'],
       'B':['A','C','D'],
       'C':['B','A','D'],
       'D':['B','C','E','F'],
       'E':['D','C'],
       'F':['D']}
def BFS(graph,s):
    queue=[]
    queue.append(s)
    seen=[]
    seen.append(s)
    parent={s:None}
    
    while len(queue)>0:
        vertex=queue.pop(0)
        nodes=graph[vertex]
        for w in nodes:
            if w not in seen:
                queue.append(w)
                seen.append(w)
                parent[w]=vertex
        #print(vertex)
    return parent
    
parent=BFS(graph,'E')          #  E  终点

''' #输出从B到E的最短路径
v='B'
while v!=None:
    print(v)
    v=parent[v]
    
'''

v='B'             #  B    起点
way=[]
while v!=None:
    way.append(v)
    v=parent[v]
print(way,len(way))

 

你可能感兴趣的:(2021蓝桥杯(Python)骗分指南)