JZOJ5968.【NOIP提高组11.24】模拟A组

 PROBLEM

SOLUTION

  •  不难发现如下的性质:

     1.必须从小到大按顺序消除所有数

     2.每一块(这里表示所有数值相等的集合)最后消剩一个数之前的二元组操作可以在之前的任意一个时刻进行。

  •  先考虑所有的a相等时的情况:设答案为f[n],则有f[n]=f[n-1]*C(n,2)
  •  对于每一块的答案我们可以单独考虑:

Ans=Ans*flen*(\sum\binom{i-1}{i-L-3}*(len-i+1)+len)

  • 我们枚举放在前面的这一块的前面的数并在前面组合的个数(2~len),再通过挡板问题将(i-1)个二元组放在(L-1)个缝隙中的组合数,补上这一块与前面匹配的选择数(len-i)个以及选到前面的合并后的1个,最后加上i=0的情况即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章