首页 > 其他分享 >P4859 已经没有什么好害怕的了

P4859 已经没有什么好害怕的了

时间:2023-09-13 16:11:22浏览次数:38  
标签:方案 P4859 什么 害怕 对数 binom 配对 我们 dp

原题

很好的一道容斥题

我们如果想让\(a_i > b_i\)的个数比\(a_i < b_i\)的对数多\(K\),这个限制是比较困难的。因为我们要同时考虑两种情况

但我们可以把原问题的限定设为\(a_i > b_i\)的对数为\(\frac{n+K}{2}\),做法就容易了很多。如果\(n+K\)是奇数,直接输出\(0\)即可

因此原问题变为了找一种配对方案,使得\(a_i > b_i\)的对数恰好为\(k\)

这个恰好的限制又过于严格,很明显不是我们想要的,因此我们考虑容斥原理。具体的,先求出\(f_i\)表示满足条件的配对对数\(\geq i\)的方案数,\(g_i\)表示满足条件的配对对数\(= i\)的方案数

容易得到以下规律:

\[f_i = \sum_{j=i}^{n}{\binom{j}{i} g_j} \]

其中\(\binom{j}{i}\)我们从恰好对数\(= j\)的配对对数中选出\(i\)对来,剩下的当成随机匹配

根据二项式反演可得

\[g_i = \sum_{j=i}^{n}{(-1)^{j-i}\binom{j}{i} f_j} \]

最终答案就是\(\large{g_{\frac{n+K}{2}}}\),因此我们只需要求\(f_i\)的值即可,这是比较好求的

我们设\(dp_{i,j}\)表示前\(i\)个数,钦定了\(j\)个满足\(a_p > b_p\)的方案数

容易得到递推式:

\[dp_{i,j} = dp_{i-1,j} + (ls_i - j + 1) \times dp_{i-1,j-1} \]

最后容易直到\(f_i = dp_{n,i} \times (n-i)!\),其中\((n-i)!\)表示未被匹配的随便分配的方案数

最终复杂度\(O(n^2)\)

标签:方案,P4859,什么,害怕,对数,binom,配对,我们,dp
From: https://www.cnblogs.com/fox-konata/p/17699914.html

相关文章

  • 演讲实录:大模型时代,我们需要什么样的AI算力系统?
    当前,“百模大战”带来了算力需求的爆发,AI芯片产业也迎来巨大机遇,“创新架构+开源生态”正在激发多元AI算力产品百花齐放。面对新的产业机会,AI算力产业链亟需通过上下游协作共同把握机遇。近日,浪潮信息AI&HPC产品线高级产品经理StephenZhang在开放计算中国峰会就AIGC时代的算力需求......
  • Firefox火狐浏览器显示你的连接不安全,是什么意思?
    当Firefox连接到一个安全的网站时(网址最开始为“https://”),它必须确认该网站出具的证书有效且使用足够高的加密强度,以充分保护您的隐私。如果证书无法通过验证,或加密强度过低,Firefox会中止连接到这个网站,并向您显示SSL证书错误信息页面:“你的连接不安全”。什么情况下出现“你的......
  • 为什么要招聘有经验的人?
    周末带娃出去玩,回来的时候路过一家新开的水果店买东西,因为是新店,所以店里在搞促销活动。进去后发现一个很糟糕的问题。店员对收银系统不熟悉,排队的人要好几分钟才能结算一个,很多人等着不耐烦就走了。现在客户买东西,在哪里买都是买,体验不好,留不住客户的。这让我想到前年六月份,公司开......
  • 为什么大家都在用 WebP?
    WebP是谷歌在2010年提出的一种新型的图片格式,放到现在来讲,已经不算是“新”技术了,毕竟已经有了更新的JPEGXL和AVIF。但是在日常工作中,大家时常会碰到保存下来的图片的后缀是.webp。那么WebP到底有什么魔力,让越来越多的网站“抛弃”常用的PNG、JPG而青睐它呢?了解Web......
  • MySQL为什么改进LRU算法
    LRU算法概念介绍LRU(LeastRecentlyUsed,最近最少使用)算法是一种用于缓存管理的常见算法。它的核心思想是:当需要淘汰(替换)一个数据时,选择最长时间未被访问的数据进行淘汰,即选择最近最少使用的数据。以下是LRU算法的概念介绍和基本工作原理:缓存管理:LRU算法通常用于管理缓存中的数据。......
  • 解密滴滴面试:foreach为什么在性能上领先for循环?
    正文大家好,我是小米!今天我要和大家分享一个有关Java编程的热门话题:为什么在Java中使用foreach循环比传统的for循环更快?这个问题在Java开发者社区中一直备受关注,我会尽力为大家解答这个问题,并提供一些有趣的示例来帮助大家更好地理解。背景在Java中,我们经常需要遍历数组或集合来处理......
  • 【快节奏的生活带来了什么影响】
    快节奏时代的我们原因随着互联网时代的发展,信息的洪流奔涌而来,越来越方便的信息获取途径,越来越迅速的信息更新,甚至还没来得及消化就已经被淘汰的信息,此类种种,让我们被信息炮弹所击晕,晕头转向的同时也被各类碎片化的信息满足感所充斥。影响一、曾经的我们能够静下心来去欣赏风......
  • 一、为什么
    一、为什么要做博主?博主如何起步?我能做吗?有产品,缺流量,可以做我能力适合吗?我能投入多少时间和精力?每天两个小时的投入,需要看书,需要总结,需要行动我能产出什么?笔记的更新,可以引流一个人......
  • "精益开发"的精益是什么?
    "精益开发"的精益是什么?最流行的软件开发模式,现在是"敏捷开发"(agiledevelopment)。但是,很多人不知道,敏捷只是一种价值观,不是具体的方法。 它包含一些原则,实现这些原则有很多不同方法,下面是主要的几种。极限编程(XP)Scrum开发看板开发(kanban)精益开发(lean)初来乍到,看到......
  • 用pyinstaller打包为什么会报错?
    大家好,我是皮皮。一、前言前几天在Python钻石群【年鱼鱼......