岛屿
题目信息
时间限制: 1s
空间限制: 512M
输入文件: island.in
输出文件: island.out
题目描述
在一个由小岛和道路组成的图中,有 2N 个小岛,N 是非负整数,小岛被编号为 1 到 2N。有 N 条无向道路,第 i 条道路连接 i 号小岛和 N+i 号小岛。给定一个非负整数 X≤2N,定义 Y=N−2X,显然 Y 也是非负整数。
另外,这些小岛被着色了,有两种颜色,红色和蓝色。其中,编号为 1 到 X 和 N+1 到 2N−X 的小岛被染成红色,其余的小岛(X+1 到 N 和 2N−X+1 到 2N)被染成蓝色。红色和蓝色小岛各有 N 个。
现在的目标是在图中添加 N 条新的道路,每条新道路必须连接一个蓝色小岛和一个红色小岛,并且方案是合法的,当前仅当任意两条新道路中,设第一条新道路端点为(x1,y1),第二条新道路端点为(x2,y2),x1、x2、y1、y2 互不相同。新道路可以和初始道路重合。
你需要求出,如果我们等概率随机选择一种添加道路的方案(两种方式不同当且仅当添加的道路集合不相等,显然总共的方案数是一个有限大的正整数),最终整个图中的连通块个数的数学期望是多少?你需要用小数输出答案并符合精度范围要求。
注:在有限正整数种可能结果中等概率随机选择一种的权值的数学期望,等于所有可能结果的权值的平均值。
输入格式
输入文件名为 island.in。
输入两个非负整数 X,Y,可以算出 N=2X+Y。
输出格式
输出文件名为 island.out。
输出期望的连通块个数,结果以小数形式呈现,需要确保答案的绝对或相对误差不超过 10−8。
样例
样例输入 1
样例输出 1
样例解释 1
N=2×0+1=1,1 号点是蓝色,2 号点是红色,只有一种连接方案,连通块个数为 1。
样例输入 2
样例输出 2
样例解释 2
N=2×1+0=2,1,3 号点是红色,2,4 号点是蓝色,有 2 种连接方案,两种方案连通块个数都为 1。所以期望是 1。
样例输入 3
样例输出 3
样例解释 3
点数是 0,所以连通块数是 0。
样例输入 4
样例输出 4
样例输入 5
样例输出 5
文本
4.52834177814232319292
数据范围与提示
考虑到不同的数据子任务,对于 100% 的数据集,0≤X,Y≤106,X 和 Y 的取值范围有以下限制:
- 子任务 1(10 分):X 和 Y 都在 0 到 5 之间;
- 子任务 2(20 分):X 的取值为 0,对 Y 没有具体限制;
- 子任务 3(20 分):Y 的取值为 0,对 X 没有具体限制;
- 子任务 4(30 分):X 和 Y 都在 0 到 103 之间;
- 子任务 5(20 分):X 和 Y 没有特殊限制,可以取任意值。