2022.9.24 总结
B
\(A\) \(B\) 轮流行动,\(A\) 需要拿走若干个数(不可不拿),\(B\) 可以拿走一个数。
\(A\) 拿走的数和要最大, \(B\) 则希望 \(A\) 拿走的数和最小。
问 \(A\) 能拿走多少数的和。
显然,\(A\) 先会拿走所有的正数,再拿 \(0,1\) 个最大的负数。如果没有正数,\(A\) 也可能拿 \(2\) 个负数。
\(B\) 会拿走剩余最大的数,\(A\) 只会拿走剩下一个最大的数,以此类推。
计算即可。
C
你要在整数区间内找到平均数是整数的子串的个数。
\(n\le 10^5, 1\le a_i\le 100\).
我们枚举平均数 \(1\le t\le 100\).
如果 \(t\) 是一段区间平均数,那么 \(\sum_l^r (a_i-t) = 0\)
前缀和 \(a_i-t\),那么我们只要找有多少个 \(sum_r=sum_{l-1}\) 相等即可。