zoukankan      html  css  js  c++  java
  • 51nod 1667 概率好题

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

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

    只能慢慢体会了。

  • 相关阅读:
    caffe绘制训练过程的loss和accuracy曲线
    ROC曲线和PR曲线
    Lintcode--009(单词切分)
    已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”
    web前端性能优化汇总
    Restful风格的前后端分离
    渐进式 JPEG (Progressive JPEG)来提升用户体验
    ESLint检测JavaScript代码
    JavaScript对象浅复制
    JavaScript对象深复制
  • 原文地址:https://www.cnblogs.com/Miracevin/p/9415254.html
Copyright © 2011-2022 走看看