• 4.26


    4.25考试:

    数字 (number)

    考试看到数据范围大就猜到和数位dp有关系了,奈何数位dp没怎么学,考场上写了写乱七八糟的东西,调不过样例。

    这里有个特殊条件,x∨y的二进制表示中最多只有15个1,所以我们可以O(215)地枚举W=x∧y,逐个判断W是否可行。判断单个 W 是否可行的方式类似 Subtask2,从高位到低位确定 x, y 的过程中,我们只需关心 x 的已填部分是否等于 Lx, Rx,y 的已填部分是否等于Ly, Ry,我们需要记下这16种情况分别是否可能出现,即记下一个 16 位的二进制数.正解就是优化一下常数,Dp计算出W的可能取值种数DP的状态为当前已经考虑过的位数和那个16位的二进制数。

     

     

     

    BZOJ5058 期望逆序对

    总感觉以前的模拟赛做过,当时没想出来。

    这道题就是数学加数据结构了,现在想想不算太难,就是先手磨一下样例发现一些性质,可以发现任意两个位置A,B最终位置关系的概率是相等的如果数列是这样:
    CCCCACCCCBCCCC
    那么最终有7种位置关系

    (A,B)(A,C)(B,A)(B,C)(C,A)(C,B)(C,C)
    手玩出7×7的转移矩阵,矩乘后即可得到各种位置关系的概率
    然后枚举B,用树状数组维护与A有关的量组合计算即可,相当于分类讨论,构建矩阵即可,然后套数据结构树状数组优化常数

     

     

    573E.   Bear and Bowling

    首先有一个贪心的结论:我们一次加入每个数,对于∀i,位置i的贡献为Vi=ki×ai+bi,其中ki为位置i之前被选的数的个数,bi为i之后被选的数的和。那么我们每次选这个贡献最大的位置一定最优。考虑分块维护这个最大值。每次选完最大值,就相当于对于选定的pos,pos前的位置i中bi均加上apos,pos后的位置i中ki均加上一。因为对于同一块我们加上的k,b是一样的,而pos所在的块可以n−−√暴力重构,所以我们分块维护凸壳就可以了。

     

     

    CF838D Airplane Arrangements

     组合计数问题了,概率期望不太沾边

    因为乘客们可以从双向进入,然后乘客只会看给自己安排的座位和后面的空座位,所以我们不如直接新建一个虚拟座位,把这个序列变成一个环。乘客在找不到真实座位中找不到座位了,自然就会坐到虚拟位置上。因此,如果一个方案中虚拟位置被坐了说明不合法,否则就合法.虚拟位置与其他位置一样是一个普通的座位,对于m个人来说,其没有被占据的概率为(n+1-m)/(n+1).而所有的安排数是(2*(n+1)) ^ m,他们的乘积整理出来就是结果,即2^m * (n+1) ^ (m-1) * (n+1-m)

     

    只写了自己懂的

     

     

     

  • 相关阅读:
    UIApplication常见属性与方法总结--ios
    The Swift Programming Language 中文版---Swift 初见
    The Swift Programming Language 中文版-----关于 Swift
    IDEA启动Jetty报404
    如何制作Win10系统U盘安装镜像
    常用软件下载开发环境七牛镜像Java、Node、Mongo
    Java反射获取当前项目下所有类,支持Servlet
    document文档流详解
    javax.el.PropertyNotFoundException: Property [name] not readable on type
    tomcat绑定域名绑定端口及更换ROOT目录
  • 原文地址:https://www.cnblogs.com/2018hzoicyf/p/12778637.html
Copyright © 2020-2023  润新知