输入输出
n,k,a,b = map(int,input().split())
n, v = map(int, input().split())
dst = deque(map(int, input().split()))
内置数据结构
双端队列
from collections import deque
dst = deque()
dst[0]
dst[-1]
dst.appendleft(8)
dst.append(1)
dst.pop()
dst.popleft()
# 将一个可迭代对象中的元素扩展到双向队列的右侧。
dst.extend([3,4,5])
# 将一个可迭代对象中的元素以逆序方式添加到双向队列的左侧。
dst.extendleft([3,4,5])
# 移除双向队列中的所有元素。
dst.clear()
列表
# 创建一个空列表
my_list = []
# 使用 append() 方法向列表末尾添加元素
my_list.append(1)
my_list.append(2)
print(my_list) # 输出: [1, 2]
# 使用 extend() 方法将另一个列表的元素扩展到当前列表的末尾
another_list = [3, 4, 5]
my_list.extend(another_list)
print(my_list) # 输出: [1, 2, 3, 4, 5]
# 使用 insert() 方法在指定位置插入元素
my_list.insert(2, 6) # 在索引 2 处插入元素 6
print(my_list) # 输出: [1, 2, 6, 3, 4, 5]
# 使用 remove() 方法移除指定值的第一个元素
my_list.remove(3)
print(my_list) # 输出: [1, 2, 6, 4, 5]
# 使用 pop() 方法移除并返回指定索引处的元素
popped_element = my_list.pop(2) # 移除索引 2 处的元素并将其返回
print(popped_element) # 输出: 6
print(my_list) # 输出: [1, 2, 4, 5]
# 使用 index() 方法查找指定值的第一个匹配项的索引
index = my_list.index(2)
print(index) # 输出: 1
# 使用 count() 方法统计指定值在列表中的出现次数
count = my_list.count(4)
print(count) # 输出: 1
# 使用 sort() 方法对列表进行排序(默认升序)
my_list.sort()
print(my_list) # 输出: [1, 2, 4, 5]
# 使用 reverse() 方法反转列表中的元素
my_list.reverse()
print(my_list) # 输出: [5, 4, 2, 1]
# 使用 clear() 方法移除列表中的所有元素
my_list.clear()
print(my_list) # 输出: []
模板
二分查找
def check(a):
return a<=5
arr = [1, 2, 3, 4, 3, 3, 6, 7, 2]
arr.sort()
print(arr)
l, r = -1, len(arr)
while l + 1 != r:
mid = (l + r) // 2
if check(arr[mid]):
l = mid
else:
r = mid
# 输出满足check的最大值
print(arr[l])
示例
P9240 [蓝桥杯 2023 省 B] 冶炼金属 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
l, r = 0, 1000000000
n = int(input())
arr = []
for i in range(n):
d,f = map(int, input().split())
arr.append((d,f))
def check1(n):
for k in arr:
if k[0]/n<k[1]:
return False
return True
def check2(n):
for k in arr:
if k[0]/n>k[1]+1:
return True
return False
while l + 1 != r:
mid = (l + r) // 2
if check1(mid):
l = mid
else:
r = mid
n1 = l
l, r = 0, 1000000000
while l + 1 != r:
mid = (l + r) // 2
if check2(mid):
l = mid
else:
r = mid
n2 = r
print(str(n2)+" "+str(n1))
记录失败
蓝桥杯小白赛
大数据必须这样输出。。。。
def max_number(N, M):
num = [0] * N
for i in range(N):
if M >= 9:
print(9,end="")
M -= 9
else:
print(M,end="")
M = 0
N, M = map(int, input().split())
if M > N*9:
print(10**N - 1)
else:
max_number(N, M)