Description:
甲乙进行比赛。
他们各有k1,k2个集合[Li,Ri]
每次随机从他们拥有的每个集合中都取出一个数
S1=sigma甲取出的数,S2同理
若S1>S2甲胜 若S1=S2平局 否则乙胜
分别求出甲胜、平局、乙胜的概率。
(显然这个概率是有理数,记为p/q,则输出答案为(p/q)%(1e9+7))(逆元)
注意 多组数据
Solution:
非常没有思路的神仙题。
大概的收获就是:
0.求概率,就是胜的方案数,除以总的情况数。
1.第一步的操作非常巧妙。Ri-xi,Li+yi
直接决定了之后的边形。
大概是,一定要向已知的常数L,R靠拢,并且把涉及的变量的范围平移统一一下。
如果不进行这一步边形,∑xi+∑yi = 0 这个xi,yi的取值区间就很多了。
平移一下,使得左端点的取值都是0。而非负整数解有比较容易处理。
2.第二步:设右边的常数是m
∑xi+∑yi < m -> ∑xi+∑yi <= m-1
这个是基本的操作,发现,小于号一般不容易考虑,许多结论中,小于等于,大于等于比较容易处理。
3.进一步操作:
∑xi+∑yi+k = m-1 利用上一步的<=号,进一步引入变量k,使得成为等式。并且,由于之前是<=号,所以,k的取值范围左端点也是0
这就容易处理多了。求方程解的个数。就是胜利的情况总数。
至此,方程转化完毕。
4.容斥:
比较自然了。类似硬币购物的思想。处理范围问题的好帮手。
5.组合数,箱子与球
gzz讲过的。多变量系数为1整数方程,直接转化为常数放进变量里。
我只能想到第0步。。。
对于推式子转化的题目,还是没有任何思路,
只能慢慢体会了。