时间限制: 1000ms 内存限制: 256MB
描述
仙剑是一款经典的RPG游戏,最近又推出了仙剑5前传。Alice身为忠实的仙剑粉丝,当然是在第一时间就开始玩了。迷宫以及各类小游戏是仙剑系列的一大传统,这次也不例外。而且还增加了称号系统,玩家如果在满足一定条件下通过迷宫或是完成小游戏,都可以获得相应的称号奖励。Alice虽然智商也不算太低,顺利的完成游戏还是没什么问题的,但是某些称号对于她来说好像比较困难,所以她来找你帮忙。
仙剑5前传中增加了软星包子这种很萌的NPC,它散落在世界各地,你每找到一个,都可以挑战他,挑战成功可以拿到一些卡片。挑战具体说来就是一个记忆力游戏,有 N 种卡片,每种两张,总共 2N 张卡片面朝下放置。玩家可以点击面朝下的卡片并将其翻面。当有两张卡片正面朝上时,如果这两张卡片是同一种,则将这两张卡片收走,否则的话,再将这两张卡片面朝下放置在原位。
Alice的记忆力很差,只能记住 K 张卡片(包括刚刚翻开的)。她的策略如下:
* 当没有卡片正面朝上时:
* 如果她记住的卡片中有两张是同一种的,那就翻开那两张卡片;
* 否则,她随机的翻开一张她不知道的卡片。
* 当有一张卡片正面朝上时:
* 如果她记得另一张同样的卡片在哪里,就直接翻开那张;
* 否则,她随机的翻开一张她不知道的卡片。
Alice想知道,她期望要点多少次才可以完成这个小游戏。
输入
输入数据的第一行包含一个整数 T,表示数据组数。
接下来有 T 组数据,每组数据中有一行,包含两个整数 N, K。
输出
对于每组数据,输出一行"Case #X: Y",其中 X 为数据组数编号,从 1 开始,Y 为期望的步数。
绝对误差在1e-6以内或相对误差在1e-8以内即可。
数据范围
1 ≤ T ≤ 10
1 ≤ K ≤ 10
小数据:1 ≤ N ≤ 100
大数据:1 ≤ N ≤ 100000
提示
下面是一种可能的游戏过程,用来解释Alice可以记住 K 张卡片这一点:
假设N = 5, K = 3
已经翻开的卡片 | 刚刚翻开的卡片 | Alice记住的卡片 | 解释 |
- | A0 | A0 | |
A0 | B0 | A0, B0 | |
- | C0 | A0, B0, C0 | |
C0 | B1 | B0, C0, B1 | |
- | B0, B1 | C0, B0, B1 | B0和B1都在记忆中,直接翻开移除 |
- | A1 | C0, A1 | |
A1 | D0 | C0, A1, D0 | |
- | E0 | A1, D0, E0 | |
E0 | E1 | D0, E0, E1 | 碰巧翻到两张一样的,E0和E1移除 |
- | D1 | D0, D1 | |
D1 | D0 | D1, D0 | Alice记得D0,D0和D1移除 |
- | A1 | A1 |
继续……
-
样例输入
-
2 2 1 3 3
样例输出
-
Case #1: 8.000000 Case #2: 9.000000