赛题地址:https://www.lanqiao.cn/oj-contest/newbie-2/
import os
import sys
# 请在此输入您的代码
n, m = map(int, input().split())
x, y = [0] * m, [0] * m
for i in range(m):
x[i], y[i] = map(int, input().split())
x.sort()
y.sort()
print(max(x[m - 1] - x[0], y[m - 1] - y[0]) + 1) # 取长/宽的最大值即可
import bisect
# 欧拉筛法,记得开两个数组,一个bool,一个存下质数
N = int(1e5) + 20
primes = [True] * N
arr = []
cnt = 0
for i in range(2, N):
if primes[i]:
arr.append(i)
j = i * 2
while j < N:
primes[j] = False
j += i
n = int(input())
res = 0
for x in list(map(int, input().split())):
l = bisect.bisect_left(arr, x) # bisect_left找大于等于它的第一个数的下标,不存在则为0
if arr[l] != x: # 不等于的话,就去比较两边哪个离得更近
res += min(abs(x - arr[l - 1]), abs(arr[l] - x))
print(res)
import os
import sys
# 请在此输入您的代码
def f(a,b,high):
if high<0:
return 0
ans=0
for i in range(1,b+1):
n=a//i
ans+=n*(min(high,i-1)+1)
ans+=min(high,a%i)
return ans
a,b,s,t=map(int,input().strip().split())
print(f(a,b,t)-f(a,b,s-1))
f(b) = a
这个定义的意思。就是说[1, a - 1]都是b的因子,但是a不是b的因子。比如f(6) = 4
f(b) = a
p[i] = lcm(p[i - 1], i)
from math import gcd # 最大公约数
def my_lcm(a, n): # 求1 ~ a-1所有数的最小公倍数
lcm = 1
for i in range(1, a):
lcm = lcm * i // gcd(lcm, i)
if lcm > n: # 最小公倍数 > b的最大值, 则所有b都不满足
return 0
return lcm
# 符合条件的b:不能被a整除但一定能被1,2,3...a-1每一个数整除,所以b一定是1,2,3...a-1最小公倍数的倍数
for i in range(int(input())):
a, n = map(int, input().split())
m = my_lcm(a, n)
if m:
# 考虑容斥:1~n范围1,2,3...a-1最小公倍数的倍数的个数 - 1,2,3...a最小公倍数的倍数的个数即符合条件的b的个数
p = n // m # 现将所有可能的情况计算出来
q = n // (m * a // gcd(m, a)) # 再计算出不合规的情况,(参考测试用例2)
print(p - q)
else:
print(0)