其他分享
首页 > 其他分享> > 【题解】ABC242Ex - Random Painting

【题解】ABC242Ex - Random Painting

作者:互联网

给定若干个区间,每次随机选择一个区间覆盖,问期望多少次能覆盖区间 \([1,n]\)。

期望多少次等价于求每个位置最晚被覆盖的时间的期望,我们记位置 \(i\) 的被覆盖时间为 \(t_i\)。那么就是求 \(E(\max\{t_i\})\)。

考虑 min-max 容斥,然后 DP,\(f_{i,j}\) 表示集合中最后一个数为 \(i\),目前有 \(j\) 个区间没有覆盖集合中的点,对应所有集合的容斥系数之和。时间复杂度 \(\mathcal{O}(N^2M)\)。

#define N 405
int n, m, f[N][N], w[N][N];
 
int main() {
	read(n, m);
	f[0][0] = ~0;
	rp(i, m){
		int l, r; read(l, r);
		pr(x, l)rep(y, r, n)w[x][y]++;
	}
	rp(i, n)rep(j, 0, i - 1){
		int u = w[j + 1][i - 1];
		rep(k, u, m)su(f[i][k], f[j][k - u]);
	}
	int ans = 0;
	rp(i, n)rep(j, 0, m)if(f[i][j]){
		int k = j + w[i + 1][n];
		ad(ans, m * 1LL * Pow(m - k, P - 2) % P * f[i][j] % P);
 
	}
	printf("%d\n", ans);
	return 0;
}

标签:rp,覆盖,int,题解,rep,ans,区间,ABC242Ex,Painting
来源: https://www.cnblogs.com/7KByte/p/15971069.html