二分基本理念
def bin_search(data_set, val):
low = 0
high = len(data_set) - 1
while low <= high:
mid = (low + high) // 2
if data_set[mid] == val:
return mid
elif data_set[mid] < val:
low = mid + 1
else:
high = mid - 1
return
AcWing 788. 逆序对的数量
def bin_search(data_set, val):
low = 0
high = len(data_set) - 1
while low <= high:
mid = (low + high) // 2
if data_set[mid] == val:
low, high = mid, mid
while data_set[low] == val and low - 1 >= 0:
low -= 1
if data_set[0] != val:
low += 1
while data_set[high] == val and high + 1 <= len(data_set) - 1:
high += 1
if data_set[len(data_set) - 1] != val:
high -= 1
return low, high
elif data_set[mid] < val:
low = mid + 1
else:
high = mid - 1
return -1, -1
if __name__ == "__main__":
n = list(map(int,input().split()))
li = list(map(int,input().split()))
nums = []
for i in range(n[1]):
num = int(input())
nums.append(num)
for i in nums:
for j in bin_search(li, i):
print(j, end=" ")
print("")
AcWing 790. 数的三次方根
#得到三次根浮点数
def bin_search(n):
l = -N
r = N
while abs(r - l) > 1e-8:
mid = (l + r) / 2
if mid**3 > n:
r = mid
else:
l = mid
print(f"{l:.6f}")
if __name__ == "__main__":
n = float(input())
N =100010
bin_search(n)