赞
踩
备战2024年蓝桥杯 省赛第一期模拟赛题单
备战Python大学A组
第一题:求余
第二题:灌水
第三题:区间最大和
第四题:最多约数
第五题:循环位移
第六题:最后的元音
第七题:公约移动
第八题:转换次数
第九题:最大落差
第十题:字符显示
第十一题:数位和相等
解题思路:语法
【Python程序代码】
print(pow(2,2023,1000))
最终结果:608
解题思路:BFS
【Python程序代码】
- from collections import *
- vis = [[0]*100 for _ in range(100)]
- mp = [[0]*32]
- for i in range(30):
- tep = [0] + list(input())
- mp.append(tep)
- mp[1][1]=2
- dic = [(1,0),(0,1),(-1,0),(0,-1)]
- def bfs():
- q=deque()
- q.append((1,1))
- vis[1][1]=1
- while q:
- t = q.popleft()
- for i in range(4):
- nx,ny = t[0]+dic[i][0] , t[1]+dic[i][1]
- if nx<1 or nx>30 or ny<1 or ny>40:continue
- if mp[nx][ny]!='0' or vis[nx][ny]:continue
- q.append((nx,ny))
- vis[nx][ny]=1
- res = 0
- bfs()
- for i in range(1,31):
- for j in range(1,41):
- if vis[i][j]:res += 1
- print(res)
-
- for i in range(1,31):
- tep = [str(j) for j in vis[i][1:41]]
- print("".join(tep))
- print(541)
最终结果:541
解题思路:前缀和
【Python程序代码】
- n,k = map(int,input().split())
- a = [0] + list(map(int,input().split()))
- s = [0]*(n+10)
- for i in range(1,n+1):
- s[i] = s[i-1]+a[i]
- res = 0
- for i in range(k,n+1):
- res = max(res,s[i]-s[i-k])
- print(res)
解题思路:语法
【Python程序代码】
- def solve(x):
- res = 0
- i=1
- while i*i<=x:
- if x%i==0:
- res += 1
- if x//i>i:
- res += 1
- i += 1
- return res
- num,cnt = 0,0
- for i in range(6):
- nums = list(map(int,input().split()))
- for j in nums:
- cnt1 = solve(j)
- if cnt1>cnt:
- cnt = cnt1
- num = j
- print(num)
最终结果: 901440
解题思路:语法
【Python程序代码】
- x= input()
- print(x[1:]+x[0])
解题思路:语法
【Python程序代码】
- s = input()
- p = ['a','e','i','o','u']
- for i in range(len(s)-1,-1,-1):
- if s[i] in p:
- print(s[i])
- break
解题思路:BFS
【Python程序代码】
- from math import *
- from collections import *
- n,m = map(int,input().split())
- mp = [[0]*(m+1)]
- for i in range(n):
- tep = [0] + list(map(int,input().split()))
- mp.append(tep)
- r,c = map(int,input().split())
- vis = [[0]*(m+5) for _ in range(n+5)]
- dic = [(1,0),(0,1),(-1,0),(0,-1)]
- def bfs():
- q = deque()
- q.append((r,c))
- vis[r][c]=1
- while q:
- t = q.popleft()
- for i in range(4):
- nx,ny = t[0]+dic[i][0],t[1]+dic[i][1]
- if nx<1 or nx>n or ny<1 or ny>m:continue
- if vis[nx][ny] or gcd(mp[nx][ny],mp[t[0]][t[1]])==1:continue
- vis[nx][ny]=1
- q.append((nx,ny))
- bfs()
- res= 0
- for i in range(1,n+1):
- for j in range(1,m+1):
- if vis[i][j]:res += 1
- print(res)
解题思路:语法
【Python程序代码】
- x = int(input())
- while x>=10:
- tep =str(x)
- tep = [int(i) for i in tep]
- now = 1
- for i in tep:
- if i!=0:now*=i
- x = now
- print(x)
解题思路:语法
【Python程序代码】
- n = int(input())
- a = [0] + list(map(int,input().split()))
- re = 0
- for i in range(1,n):
- if a[i]>a[i+1]:
- re = max(re,a[i]-a[i+1])
- print(re)
解题思路:语法
【Python程序代码】
print(36*30//10)
最终结果:108
解题思路:语法
【Python程序代码】
- now = 0
- for i in range(1,1000000):
- er1 = bin(i)[2:]
- ba1 = oct(i)[2:]
- er2 = [int(j) for j in er1]
- ba2 = [int(j) for j in ba1]
- if sum(er2)==sum(ba2):
- now+=1
- #print(i)
- if now==23:
- print(i)
- break
最终结果:4169
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。