给定一个由 � n 个整数构成的序列 � 1 , � 2 , … , � � a 1 ,a 2 ,…,a n ,你需要对它进行如下操作: 输入格式 1 x y,表示把所有 � � � a kx ( � k 为正整数, � � ≤ � kx≤n)都加上 � y。 输入格式 2 x y,表示把所有 � � � a kx ( � k 为正整数, � � ≤ � kx≤n)都减去 � y。 输入格式 3 j,表示输出 � � a j 。 输入格式 第一行,两个数 � , � n,m,表示有 � n 个数, � m 条操作。 第二行, � n 个数 � 1 , � 2 , … , � � a 1 ,a 2 ,…,a n 。 接下来 � m 行,为 � m 条操作。 输出格式 输出若干行,每行对应一次操作3。
时间: 2023-12-19 22:07:55 浏览: 236
输出n个整数的全排列
4星 · 用户满意度95%
可以使用数组来存储这个序列,然后按照题目要求进行操作。
具体实现如下:
```python
n, m = map(int, input().split())
a = list(map(int, input().split()))
for i in range(m):
op = input().split()
if op[0] == '1':
x, y = int(op[1]), int(op[2])
for j in range(x-1, n, x):
a[j] -= y
elif op[0] == '2':
x, y = int(op[1]), int(op[2])
for j in range(x-1, n, x):
a[j] += y
else:
j = int(op[1])
print(a[j-1])
```
时间复杂度为 $O(nm)$,可以通过本题。
完整代码如下:
阅读全文