jzoj5968专题

JZOJ5968. 电竞选手

题解 最小代价的方案是很显然的, 排序之后,相邻的两两构成一个二元组就可以了。 考虑对于相同的数字, 显然,这一段相同的先互相之间构成二元组,删剩最后一个的时候,去跟后面的一个构成二元组。 考虑这一段相同的数跟前面的二元组之间构成多少种方案, 记这一段连续的数的长度为l,前面有x个数, 那么前面总共就有x-1个二元组,而现在又会产生新的l-1个二元组。 枚举新产生的二元组有多少个是放在前面x

JZOJ5968.【NOIP提高组11.24】电竞选手

PROBLEM SOLUTION  不难发现如下的性质:      1.必须从小到大按顺序消除所有数      2.每一块(这里表示所有数值相等的集合)最后消剩一个数之前的二元组操作可以在之前的任意一个时刻进行。  先考虑所有的a相等时的情况:设答案为f[n],则有f[n]=f[n-1]*C(n,2) 对于每一块的答案我们可以单独考虑: 我们枚举放在前面的这一块的前面的数并在