[hdu4599]期望DP
2015-06-05 04:32
337 查看
思路:容易知道G(x)=6x,H(x)=6F(x)。此题的关键是求出F(x)的通项,要求F(x)的通项,先建立递推式:F(x)=1/6 * (F(x-1)+1) + 5/6 * (F(x-1)+1+F(x)-1)。
红色部分的意思是:假设已经连续出现x-1个了,若再出现一个同样的,总共花费F(x-1)+1步到达了目标状态,这种情况的概率是1/6,若出现了一个不一样的,则总共花费F(x-1)+1+F(x)-1,黄色部分是当前的总花费,但由于没到达目标状态,而回到了只比初始状态少走一步的状态,所以应该总花费应该加上F(x)-1,而概率是 5/6。将F(x)化简得到F(x)=6*F(x-1)+1,进而得到F(x) = (6^x-1)/5, H(x) = 6 * F(x), G(x) = 6 * x。求出通项来后就是解模方程了,由于有除法,用除法取模公式或者求逆都行。
红色部分的意思是:假设已经连续出现x-1个了,若再出现一个同样的,总共花费F(x-1)+1步到达了目标状态,这种情况的概率是1/6,若出现了一个不一样的,则总共花费F(x-1)+1+F(x)-1,黄色部分是当前的总花费,但由于没到达目标状态,而回到了只比初始状态少走一步的状态,所以应该总花费应该加上F(x)-1,而概率是 5/6。将F(x)化简得到F(x)=6*F(x-1)+1,进而得到F(x) = (6^x-1)/5, H(x) = 6 * F(x), G(x) = 6 * x。求出通项来后就是解模方程了,由于有除法,用除法取模公式或者求逆都行。
相关文章推荐
- Climbing Stairs
- Maximal Square
- HackerRank - "Stars"
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2) E. Brackets in Implications 构造
- Android开发记录20-获取缓存大小和清除缓存功能
- Jquery on() load event on a single element
- vsftpd之虚拟用户相关
- Codeforces Round #306 (Div. 2) D. Regular Bridge 构造
- Codeforces Round #306 (Div. 2) C. Divisibility by Eight 暴力
- Codeforces Round #306 (Div. 2) C
- Codeforces Round #306 (Div. 2) B. Preparing Olympiad dfs
- Codeforces Round #306 (Div. 2) B
- Codeforces Round #306 (Div. 2) A. Two Substrings 水题
- Java课程实验报告 实验三 敏捷开发与XP实践
- Codeforces Round #306 (Div. 2) A
- 线索二叉树
- 二叉树链式结构
- 二叉树顺序结构实现
- 模式匹配