$$AVICII$$

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)

 

只写了自己懂的

 

 

 

posted @ 2020-04-26 12:07  bootpuss  阅读(119)  评论(0编辑  收藏  举报