• 2.6


    T1:

    我们发现,答案就是每一条边的期望相加

    然后就只要对每一条边单独算期望就好了

    至于怎么算,那么我们可以分6种讨论:

    px<=qy 全部都可以 

    py<=qx 全都不行

    如果区间有相交,那么它的期望就是每一段的期望*长度最后/总长度

    然后就是每一段期望怎么求:

    然后如果一段是全部在q之前,那么就是1

    如果在后面,那么就是0

    然后如果在中间的就是(首+尾)/2

    对于单点,期望就是后面一个能碰到的长度/总长度

    详细来说见代码:

    il double zhi(double x,int y)
    {
        return max((p[y]-x)/(p[y]-q[y]),0.0);
    }
    il double calc(int x,int y)
    {
        if(p[x]<=q[y]) return 1;
        if(p[y]<=q[x]) return 0;
        double lx=p[x]-q[x],ly=p[y]-q[y];
        if(q[y]<=q[x]&&p[x]<=p[y]) return (zhi(q[x],y)+zhi(p[x],y))/2.0;
        if(q[x]<=q[y]&&p[x]<=p[y]) return ((q[y]-q[x])*1.0+(1.0+(zhi(p[x],y)))/2.0*(p[x]-q[y]))/lx;
        if(q[y]<=q[x]&&p[y]<=p[x]) 
        {
        //    printf("%lf %lf %lf
    ",zhi(q[x],y),zhi(p[y],y),p[y]-q[x]);
            return ((zhi(q[x],y)+zhi(p[y],y))/2*(p[y]-q[x]))/lx;
        }
        if(q[x]<=q[y]&&p[y]<=p[x]) return ((q[y]-q[x])*1.0+(p[y]-q[y])*0.5)/lx;
    }

    T2:

    枚举所有方法,复杂度尾组合级,没分


    T3:

    直接爆搜时间在l~r的联通快,20分

  • 相关阅读:
    js 计时器小练-20160601
    数位dp入门学习之路(正常枚举“过渡到”dfs枚举)
    An easy problem
    牌型种类 蓝桥杯
    带分数(穷举法) 蓝桥杯赛题
    表达式的转换----->中缀表达式转后缀表达式
    map 的使用
    netsatat 的使用
    两个矩形不相交
    前缀和
  • 原文地址:https://www.cnblogs.com/shenbear/p/12269847.html
Copyright © 2020-2023  润新知