终于写了一篇div2的题解..我还是很弱
A. Exam
题意就是构造一个排列使得相邻两项的差值大于1。
n <= 3 的情况手算就可以出解。
n >= 4 的情况可以按如下的方式构造
① n为偶数时我们可以构造出 n-1, n-3, .., 1, n, n-2, .., 2
② n为奇数时,我们像①那样构造出n-1的排列,最后加上n就行了
B. Covered Path
题意:给出数列的第一个元素v1和最后一个元素v2,构造一个数列使得相邻两项的差不大于d,使得数列的和最大。
我们令a[1] = v1,a[i] = a[i - 1] + d (i > 1); b[n] = v2, b[i] = b[i + 1] + d (i < n)。
那么ans = sigma(min(a[i], b[i]))
C. Polycarpus' Dice
题意:给出n个骰子d1,d2,...,dn。di表示第i个骰子能掷出1...di的数字。现在给出这n个骰子掷出的数字和A。让你计算出每个骰子有哪些数字不可能出现。
我们令 A = Zi + X Zi表示第i个骰子掷出的数字,X为其它骰子的点数和。
那么X应该满足 n - 1 <= X <= S - di 其中 S = sigma(di)
所以有 A - S + di <= (Zi = A - X) <= A - n + 1
又因为 1 <= Zi <= A 且Zi <= di
所以Zi的下界Low = max(1, A - S + di); Zi的上界Up = min(A, di, A - n + 1)
则不可能出现的点数有di - (Up - Low + 1)种
D. Handshakes
题意:构造出一个数列a[i] = a[i - 1] + 1 - 3 * k。
A. Exam
题意就是构造一个排列使得相邻两项的差值大于1。
n <= 3 的情况手算就可以出解。
n >= 4 的情况可以按如下的方式构造
① n为偶数时我们可以构造出 n-1, n-3, .., 1, n, n-2, .., 2
② n为奇数时,我们像①那样构造出n-1的排列,最后加上n就行了
B. Covered Path
题意:给出数列的第一个元素v1和最后一个元素v2,构造一个数列使得相邻两项的差不大于d,使得数列的和最大。
我们令a[1] = v1,a[i] = a[i - 1] + d (i > 1); b[n] = v2, b[i] = b[i + 1] + d (i < n)。
那么ans = sigma(min(a[i], b[i]))
C. Polycarpus' Dice
题意:给出n个骰子d1,d2,...,dn。di表示第i个骰子能掷出1...di的数字。现在给出这n个骰子掷出的数字和A。让你计算出每个骰子有哪些数字不可能出现。
我们令 A = Zi + X Zi表示第i个骰子掷出的数字,X为其它骰子的点数和。
那么X应该满足 n - 1 <= X <= S - di 其中 S = sigma(di)
所以有 A - S + di <= (Zi = A - X) <= A - n + 1
又因为 1 <= Zi <= A 且Zi <= di
所以Zi的下界Low = max(1, A - S + di); Zi的上界Up = min(A, di, A - n + 1)
则不可能出现的点数有di - (Up - Low + 1)种
D. Handshakes
题意:构造出一个数列a[i] = a[i - 1] + 1 - 3 * k。
有点晚了...明天补上