基于每轮重编号,然后反推本轮编号对应的上一轮的编号。第n-1轮后,只剩下1个,重编号为0。
f(i) 表示在第n-i轮对应的编号,则有:
f(1) = 0
f(i) = (f(i - 1) + arr[(n - i) % m]) % i
计算到 f(n)
cnt = int(input())
while cnt:
cnt -= 1
line = list(map(int, input().split()))
n, m, arr = line[0], line[1], line[2:]
res = 0
for i in range(2, n + 1):
res = (res + arr[(n - i) % m]) % i
print(res)