f[i][j]表示前i数有a头的,选了j组a>b的方案数 f[i][j] = f[i - 1][j] + (lower_bound(b, a[i]) - j + 1) * g[i - 1][j - 1] g[i]为a > b的组数的方案数; g[i] = sigma(c[i][k] * f[i]) (1 <= k <= n) 二次项反演后 得到 sigma((-1)^(i - k) * g[i] * g[i - k])