小象涂色 [DP]

小象涂色
题目描述:
( elephant.pas/.c/.cpp )
时间限制: 1s ,空间限制 128MB
小象喜欢为箱子涂色。小象现在有 c 种颜色,编号为 0~c-1 ;还有 n 个箱子,编号为
1~n ,最开始每个箱子的颜色为 1 。小象涂色时喜欢遵循灵感:它将箱子按编号排成一排,
每次涂色时,它随机选择 [L , R] 这个区间里的一些箱子(不选看做选 0 个),为之涂上随
机一种颜色。若一个颜色为 a 的箱子被涂上 b 色,那么这个箱子的颜色会变成( a*b ) mod
c 。请问在 k 次涂色后,所有箱子颜色的编号和期望为多少?
输入描述:
第一行为 T ,表示有 T 组测试数据。
对于每组数据,第一行为三个整数 n,c,k 。
接下来 k 行,每行两个整数 Li , Ri ,表示第 i 个操作的 L 和 R 。
输出描述:
对于每组测试数据,输出所有箱子颜色编号和的期望值,结果保留 9 位小数。
样例输入:
3
3 2 2
2 2
1 3
1 3 1
1 1
5 2 2
3 4
2 4
样例输出:
2.0625000001.000000000
3.875000000

分析

仔细发现,每个物品是一样的,没有必要区别分析

我们记dp[i][j]为物品处理了i次,最后颜色为j

那么dp[i][j]=dp[i-1][j]*1/2+∑dp[i-1][(j*k)%c]

还是蛮有意思的

猜你喜欢

转载自www.cnblogs.com/ibilllee/p/9457829.html