Links there:hihocoder-1596
题意
对于一个正整数列 $ a[1], … , a[n] (n ≥ 3) $,如果对于所有 $2 ≤ i ≤ n - 1$ ,都有 $a[i-1] + a[i+1] ≥ 2 × a[i]$ ,则称这个数列是美丽的。
现在有一个正整数列 $b[1], …, b[n]$ ,请计算:将 $b$ 数列均匀随机打乱之后,得到的数列是美丽的概率 $P$。
你只需要输出 $(P × (n!)) $ $ mod \space 1000000007$ 即可。(显然 $P × (n!)$ 一定是个整数)
思路
将${ a_i}$转化为维护一个凸函数的图像 用$f[i][j][k][t]$ 表示当前第 $i$ 个,左端点最大值和次大值为 $a[i],a[j]$ ,右端点最大值为 $a[k]$ , 次大值 $a[t]$ 的方案.由于已经排过序,新加进来的 $契$ 一定比当前左右端点的都要大.
那么有两种情况,要么在左边成立 要么在右边成立.
这第二个柿子有一点奇怪 但是因为左边端点其实是和右边端点等价的. 所以可以将上面第二个写成这样
注意细节将所有最小的计数 然后答案去乘它的阶乘.
Code
1 | //my vegetable has exploded. :( |