[vp]CF1536(div2)

https://codeforces.com/contest/1536

(A:)

有负数时无解,观察到(a leq 100)(k leq 300)
输出(0)~(100)的整数即可。

(B:)

因为(n leq 1000),字母是(a)~(z),所以字符串的(mex)最多为(3),且字典序还很小
按字典序从小到大枚举(mex)字符串(或搜索),字符串(hash)检验。

(C:)

如果两段连续的比值相同,那么两段合起来比值也相同。
(f_i)为前缀(i)的答案。
(f_i = max{ f_j }+1~(g(1,j)=g(j+1,i)))
查最大的二元组的值,用(map)维护。

(D:)

根据常识,每加两个数,中位数至多移动一个位置。
那么对于目前的中位数(x)和上次的中位数(y)
我们只需要判断值域(x)~(y)中有没有出现过其他数就好了。
这个可以用很多不同数据结构维护,
还有一个问题,每次我们要插入两个数,但我们只考虑了当前的(b_i)
因为(a_i)的值域是无穷大,只要看成插入一个极大或极小值就好了,根据决策包容性,这样想是对的

(E:)

结论:我们选择一些 "#" 为0时,那么整个方格的权值就确定了。
题目的约束条件容易让人想到(bfs),我们想象从每一堆(0) bfs,
那么所覆盖的区域就是确定的。(每次只能(+1))。
答案就是(2^k)((k)表示#的数量),如果全是#要(-1)

(F:)

结论:后手必胜。自证不难。
根据结论,最后的棋子个数是偶数。
并且是(BR)(RB)交错的形式,中间有一些空格,用插板法计数。
对于一个有(k)个棋子的局势,有(k!)种顺序导出。
因为是环,考虑起始位置填还是不填。
所以最后的答案为:

(2 imes sum_{k|2}^{n} k!(C_{n-k-1}^{k-1}+C_{n-k}^{k}))

原文地址:https://www.cnblogs.com/Xxhdjr/p/14863478.html