AcWing 5994. 商品库存管理
原题链接
中等
作者:
Myang
,
2025-04-03 21:33:56
· 广东
,
所有人可见
,
阅读 23
python 代码
# 读取输入的 n 和 m
n, m = map(int, input().split())
l = [0] * (m + 1)
r = [0] * (m + 1)
d = [0] * (n + 2)
s = [0] * (n + 1)
for i in range(1,m + 1):
l[i],r[i] = map(int,input().split())
d[l[i]] += 1
d[r[i] + 1] -= 1
for i in range(1,n + 1):
s[i] = s[i - 1] + d[i]
p0 = [0] * (n + 1)
p1 = [0] * (n + 1)
for i in range(1, n + 1):
p0[i] = p0[i - 1]
p1[i] = p1[i - 1]
if s[i] == 1:
p1[i] = p1[i] + 1
if s[i] == 0:
p0[i] = p0[i] + 1
for i in range(1,m + 1):
ans = p0[n] - p0[r[i]] + p0[l[i] - 1] + p1[r[i]] - p1[l[i] - 1]
print(ans)
# ----------------------------------裸差分----------------------------------------------#
# n,m = map(int,input().split())
# l = [0] * (m + 1)
# r = [0] * (m + 1)
# store = [0] * (n + 2)
# def insert(l,r):
# store[l] += 1
# store[r + 1] -= 1
# def dec(l,r):
# tmp[l] -= 1
# tmp[r + 1] += 1
# for i in range(1,m + 1):
# l[i],r[i] = map(int,input().split())
# insert(l[i],r[i])
# for i in range(1,m + 1):
# cnt = 0
# tmp = store[:]
# dec(l[i],r[i])
# for i in range(1,n + 1):
# tmp[i] = tmp[i] + tmp[i - 1]
# if tmp[i] == 0:
# cnt = cnt + 1
# print(cnt)