o_o 当前时间是:

11:37:13 AM

 

CF1842H

传送门

description

洛谷翻译

solution

考虑分析一下不等式 xi+xj1

  • 如果 xi,xj0.5,一定成立;

  • 如果 xi,xj>0.5,一定不成立;

  • 如果 xi,xj 中一个 >0.5,一个 0.5,不妨设 xi0.5,则要求 0.5xixj0.5

可以发现,前两种情况比较简单,后一种情况和 xi 与 0.5 差的绝对值有关,于是我们不妨把所有数向左平移 0.5,看起来更舒服。原要求变成 xi+xj0

一个不难想的做法是枚举有哪些数是 0 的,这样就可以把所有不等式转化为 |xi||xj| 的形式。所有合法的绝对值的大小排列除以 2nn! 就是这种情况对答案贡献的概率(因为每种 n 个数的大小关系是随机的,规定一个数正负号的概率是 12)。但是后面这个部分相当于求一张图的拓扑序数量,没有多项式复杂度的做法,加上前面 2n 枚举,复杂度式不能接受的。

我们尝试不去枚举哪些数是 0 的。设 fmask 表示选出点集为 mask 的合法的绝对值大小关系排列的数量。根据上面的推导,最后乘上系数 12nn! 就是答案。

我们枚举 mask 中绝对值最大的数 xi,如果它能够作为负数存在于排列中,要求不存在有限制 xi+xj0xj 在排列中;作为非负数同理。

对于 xi+xi0 这类的限制,还要求 xi0,需要特别注意一下。

细节见代码。

code

Submission #230485940 - Codeforces

posted @   zzafanti  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示