并没有参加,但是在讨论区看到题了,写写题解吧。 A: 考虑到问题实际上就是要求最小的k使得a[i] + T = a[i + k - 1],T = a[k] - a[1]; 会发现问题也就是找(a[1] + T,a[2] + T,...a[n - k + 1] + T) == (a[k],a[k + 1],...,a[n]) 我们发现在这两组数里面他们的差分序列是相等的。所以可以得出解法 构造一个差分序列c[i] = a[i + 1] - a[i]. 问题就相当于求c[1....n - k] == c[k....n - 1]了,这里可以kmp来求 B: 简单的多重背包+0/1背包 dp...