Description
有两个人在长度为N的数轴上走路。
每次每个人可以有相等的概率向前走1~m步。
如果超过N他会往回走(参考飞行棋)
先走到N的人赢。
现在先手在x,后手在y。
求先手赢的概率。
N,m,x,y<=2000
Solution
B组的一道题。
然而似乎特别难想。
于是一堆人决定上403去问(被裱)。
刷了一天SAM的我决定跟上去提高一下自己的姿势水平。
然而突然发现自己似乎还没有好好滴思考(看标程)
于是果断回去想(kan)了一发。
然后突然灵稽一动,口胡出了一种似乎是正解的东西啊233
于是你可以脑补,接下来我给全部初中同学连讲3发我口胡出来的DP的场景。
回来发现已经9:30了啊233
咳咳
我们可以考虑逆推。
设
Fi,j
表示先手走到i后手走到j的概率。
那么我们发现,如果走到可以反弹的范围内的话,所有的状态都是一样的。
这个东西是一个无穷级数,是可以推出来的。
如果i,j都不在就是显然的转移,用二维前缀和来优化。
剩下两种情况就自己yy一下就好了。