赞
踩
目录
- n, m = map(int, input().split())
- nums = [0] + list(map(int, input().split())) # 在前面加一个元素,防止询问时越界
- # 前缀和
- for i in range(1, n + 1):
- nums[i] += nums[i - 1]
- # 询问
- for _ in range(m):
- l, r = map(int, input().split())
- print(nums[r] - nums[l - 1])
- n, m, q = map(int, input().split())
- mat = []
- # 存入矩阵
- for _ in range(n):
- mat.append(list(map(int, input().split())))
- # 前缀和
- add = [[0] * (m + 1) for _ in range(n + 1)]
- for i in range(n):
- for j in range(m):
- add[i + 1][j + 1] = add[i][j + 1] + add[i + 1][j] - add[i][j] + mat[i][j]
- # 询问
- for _ in range(q):
- x1, y1, x2, y2 = map(int, input().split())
- print(add[x2][y2] - add[x1 - 1][y2] - add[x2][y1 - 1] + add[x1 - 1][y1 - 1])
- n, m = map(int, input().split())
- nums = list(map(int, input().split()))
- # 操作
- diff = [0] * (n + 1) # 差分数组
- for _ in range(m):
- l, r, c = map(int, input().split())
- diff[l - 1] += c
- diff[r] -= c
- # 前缀和
- print(diff[0] + nums[0], end = ' ')
- for i in range(1, n):
- diff[i] += diff[i - 1]
- print(diff[i] + nums[i], end = ' ')
- n, m, q = map(int, input().split())
- # 输入
- mat = []
- for _ in range(n):
- mat.append(list(map(int, input().split())))
- # 操作
- diff = [[0] * (m + 2) for _ in range(n + 2)]
- for _ in range(q):
- x1, y1, x2, y2, c = map(int, input().split())
- diff[x1][y1] += c
- diff[x1][y2 + 1] -= c
- diff[x2 + 1][y1] -= c
- diff[x2 + 1][y2 + 1] += c
- # 前缀和
- for i in range(1, n + 1):
- for j in range(1, m + 1):
- diff[i][j] += diff[i - 1][j] + diff[i][j - 1] - diff[i - 1][j - 1]
- print(diff[i][j] + mat[i - 1][j - 1], end = ' ')
- print()

- # 滑动窗口
- import collections
- n = int(input())
- nums = list(map(int, input().split()))
- # hash = collections.defaultdict(int) # 储存区间中元素个数
- hash = dict.fromkeys(nums, 0)
- left, ans = 0, 0
- for right in range(n):
- # 遍历右端点
- hash[nums[right]] += 1
- # 缩短区间,将左端点以到区间内无重复数字
- while hash[nums[right]] > 1:
- hash[nums[left]] -= 1
- left += 1
- ans = max(ans, right - left + 1) # 更新答案
- print(ans)

- # 双指针
- n, m, target = map(int, input().split())
- alist = list(map(int, input().split()))
- blist = list(map(int, input().split()))
- i, j = 0, m - 1
- while i < n and j >= 0:
- x, y = alist[i], blist[j]
- if x + y == target:
- print(i, j)
- break
- elif x + y > target:
- j -= 1
- else:
- i += 1
- # 模拟
- n, m = map(int, input().split())
- short_list = list(map(int, input().split()))
- long_list = list(map(int, input().split()))
- i, j = 0, 0
- while i < n and j < m:
- if short_list[i] == long_list[j]:
- i += 1
- j += 1
- else:
- j += 1
- print('Yes' if i == n else 'No')
完
感谢你看到这里!一起加油吧!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。