Codeforces #259 Div.2

时间:2023-03-09 00:59:03
Codeforces #259 Div.2

A. Little Pony and Crystal Mine

模拟题. 用矩阵直接构造或者直接根据关系输出

B. Little Pony and Sort by Shift

模拟题。

通过提供的操作得到的序列只能是两段递增或者整个序列递增。

那么可以求得第一段递增序列长度为0…p

如果整个序列是递增,即 p= n-1 那么操作次数就是0.

否则,假设是两段递增,把原始的序列恢复出来,设当前序列是AB,那么A就是0…p

BA = (A'B')', '表示对序列进行翻转,

如果BA是有序的,那么需要的操作数就是n-p-1.否则是没法得到,输出-1.

时间复杂度为O(n)

C. Little Pony and Sort by Shift

数学题,快速幂取模

给m个面的骰子扔n次,求期望点数的最大值。

样例很明显,对与一般化情况通过组合数学方法,我们可以得到:

如果最大值为1,1出现的次数只有1.

如果最大值为2,2出现的次数有Codeforces #259 Div.2

如果最大值为3,2出现的次数有Codeforces #259 Div.2

如果最大值为4,2出现的次数有Codeforces #259 Div.2

......

如果最大值为2,2出现的次数有Codeforces #259 Div.2

每一次出现的概率都是    Codeforces #259 Div.2

那么期望值就是Codeforces #259 Div.2

化简后可以得到Codeforces #259 Div.2

含幂项可以通过快速幂取模的方法来求,所以总的时间复杂度为O(mlogn)