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步。。。

对于推式子转化的题目,还是没有任何思路,

只能慢慢体会了。

05-19 04:23