[关闭]
@SovietPower 2019-03-11T06:43:58.000000Z 字数 3023 阅读 1154

Temp

其它


BZOJ
UOJ

感觉网上大部分题解对我这种数学基础差的人来说十分不友好...(虽然理解后也觉得没有那么难)结合两篇写的比较好的详细写一写。如果有错要指出啊QAQ
https://blog.csdn.net/smallsxj/article/details/73205569
https://www.cnblogs.com/wujiechao/p/7781140.html


首先题目要求输出精确的小数,由下面的推导可知答案要么是整数,要么是一位小数,不会是什么的。
讨论,先以为例,假设期望异或和是,把它二进制拆分,每一位记为,那么答案是
那么对于,它的贡献是两位都为的方案数。
那么用表示第个数二进制拆分后的第位,表示这个数是否存在于选出的集合中,求位都为的方案数,可以列个方程组:

(个人感觉这里除去的方程的右式应该是吧,那篇博客里写的是
解这个方程组,可以发现只会有是有唯一解的,其它都有两解。所以方案数为,贡献就为
时,,所以
时,,依旧有
扩展到的情况,设选出的位有位是互不相同的,设为,那么方程组中右式为的等式有个,且,所以,贡献
时,显然也成立。
综上,答案要么是整数,要么是一位小数


其次要注意的是数据范围。答案小于,那么似乎就有
但是个人认为,比如,但是存在也是可以的,因为毕竟是求平均值,多一位还是可能被拉低到下一位去的。所以应该是需要unsigned long long)。
然而没见到有人这么写的(写范围的都是)...那我就不知道为啥都开的unsigned long long了。
看了下数据,确实最大值是18446727131960884031。(答案是 233好强大)


考虑怎么做。对分别求解。


对每一位分别考虑。设某一位为的数有个,为的有个,那么选出奇数个该位为的方案数是:,偶数个的方案数是

也就是选出该位为的数的个数为奇数和偶数的概率是一样的。那么只要,该位为的概率是一样的。
所以求一下哪些位上出现过,加起来除以就好了。


上面说了答案可以写成。可以直接枚举
的概率和时的情况一样,如果存在一个数第位为,那么就是,否则是。所以如果存在数第位不为且存在数第位不为,那么贡献就是
需要注意的是如果每个数位都相同且至少存在一个数满足位不为,那么是同时出现的,概率是


此时,线性基中的元素个数不超过,所以可以直接枚举线性基中元素集合(设线性基元素个数为)。
线性基中每个子集出现的概率都是,求出子集异或和后除一下即可。
需要注意的是除之前是可以超过的。需要把表示成
因为有

证明:令,那么等式左边,等式右边









正睿OI联赛停课训练day10AM B

很简单的DP是表示当前挂了个人,小R受到次攻击的概率。转移时枚举这次攻击挂了多少人。这样是的。

怎么优化呢。因为攻击是无差别的,不妨直接令表示第轮时,受到次攻击的概率。转移为,如果还没出局(那么它受到过次攻击),就让他出局并攻击一次剩下所有人;否则如果在之前的次攻击中挂了,就不攻击其他人。
所以有,其中



对于


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注