CodeForces - 621C Wet Shark and Flowers(期望)

题目:传送门
思路:
所得钱数 = 每对所能拿到钱的个数之和。
我们由期望公式 x = y+z, E[x] = E[y]+E[z]可得,我们所求期望 = 每个对鲨鱼所能拿到钱的期望 相加.
能想到这一点,我们的问题就迎刃而解了.

double pi[100050];
int main() {
	int  n, p;
	cin >> n >> p;
	for(int i=0;i<n;i++) {
		int l, r;
		cin >> l >> r;
		pi[i]  = 1.0 *((r / p) - (l - 1) / p)/(r-l+1);
	}
	double  ans = 0;
	for (int i = 0; i < n; i++) {
		ans += (1 - (1 - pi[i])*(1 - pi[(i + 1) % n]));
	}
	printf("%.7f\n", ans*2000);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43305984/article/details/89184929