AGC 054 (A~E) 题解

AGC 054 (A~E) 题解

A

  1. \(s_0\neq s_1\)则,答案为\(1\)
  2. 若存在\(i\),满足\(s_i\neq s_0\and s_{i+1}\neq s_0\),则答案为\(2\)
  3. 否则答案为\(3\)

B

首先一个合法分组和一个排列有着一一对应关系,所以只需要统计有多少分组。

然后乘上两边数量的阶乘即可。

C

首先考虑如何操作数最小。

一定是任意选择一个位置其中有\(>k\)个在他前面比他大的数。

然后将他往前移动,直到恰好有\(k\)个比他大的在他前面。

可以发现这样的排列是确定的。

dp的时候只需要从前往后dp,考虑把前面的数往后带。

其中一个数能往后带的条件是1. 恰好有\(k\)个比他大的在前面 2. 后面一个比他大。

然后往后带的数会放到一些不往后带的数的后面。

时间复杂度为\(O(N^2)\)

D

首先\(o,x\)之间的相对位置不变。

\(()\)一定是按照最优匹配(与\(ox\)无关)。

所以可以考虑\(dp\),转移的贡献为逆序对数。

E

假设\(a_1<a_n\)

一个数列是好的,当且仅当存在一个位置\(i\),满足\(a_i\leq a_1\and a_{i+1}\geq a_n\)

证明:

考虑倒着归纳,首先初始一定是\(x,y(x<y)\),满足条件。

对于一个满足条件的序列如果插入元素的位置\(\leq i\or > i+1\)则不影响,否则在\(i,i+1\)中间一定任然满足条件。

考虑不满足上述条件的序列个数。

可以把数从小到大填。

设结尾是\(A+k\),假设\(k\geq 2\)

  1. 填入\(A+1...A+k-1\),有\((k-1)!\)个方案。

  2. 填入\(1...A-1\),有\(\frac{(A+k-3)!}{(k-2)!}\)个方案。

  3. 填入\(A+k+1...N\),其中不能在某一个\([1...A]\)的右边,有\(\frac{(N-A-2)!}{(k-2)!}\)

总共\((A+k-3)!(N-A-2)!(k-1)/(k-2)!\)

答案即为\(\sum_{2\leq k\leq N-A} (A+k-3)!(N-A-2)!(k-1)/(k-2)!=(N-A-2)!\sum_{2\leq k\leq N-A}(A+k-3)!(k-1)/(k-2)!\)

\[= (N-A-2)!\sum _{0\leq k\leq N-A-2} (A+k-1)!/k! (k+1)\= (N-A-2)!\times (A-1)! \sum _{0\leq k\leq N-A-2} {A+k-1\choose k}(k+1)\= (N-A-2)!\times (A-1)! \sum _{0\leq k\leq N-A-2} [{A+k-1\choose k}k+{A+k-1\choose k}]\= (N-A-2)!\times (A-1)! \sum _{0\leq k\leq N-A-2} [A{A+k-1\choose k-1}+{A-1\choose k}]\\]

其中\(\sum_{0\leq k\leq B} {A+k\choose k}\)是一个经典问题。

他的封闭形式如下:

\[\sum_{0\leq k\leq B} {A+k\choose k}\=\sum_{k\leq B} {A+k\choose A}\={A+B+1\choose A+1} \]

可以这样理解\(\sum_{k\leq B} {A+k\choose A}\)为组合数矩阵的\(A\)\(A+B\)行的第\(A\)列的和。

由于\((x,y)+(x+1,y)=(x+1,y+1)\)

所以最终恰好就是上面的值。

AGC 054 (A~E) 题解

上一篇:Unit5 Innovation thinking


下一篇:当超过端口MTU时