\(\mathbf{Part. -1}\)

  • 有 \(2^N\) 个人,按照满二叉树的形态进行淘汰赛,一开始的排列顺序为所有 \((2^N)!\) 个排列之一。
  • 你是第 \(1\) 个人,已知每一对人之间的实力关系,具体地说:
    • 给出 \(M\) 个人 \(A_1 \sim A_M\)。
    • 这 \(M\) 个人都打得过你。
    • 你打得过除了这 \(M\) 个人之外的所有其他人。
    • 对于剩下的情况(你不参与的情况),编号小的人胜利。
  • 问你在所有的 \((2^N)!\) 种情况中,有多少种情况可以取得最终胜利。答案对 \({10}^9 + 7\) 取模。

\(1 \le N \le 16\),\(0 \le M \le 16\),\(2 \le A_i \le 2^N\),\(A_i < A_{i + 1}\)。

\(\mathbf{Note}\)

考虑对会输的层次容斥。如果每个层填的人分别是 \(\{p_i\}\),每层的区间长度为 \(\{l_i\}\),从小到大排序,有:

\[\sum_{S \subseteq Q} (-1)^{|S|}(2^n - \sum_{i = 1}^{|S|}l_i)!\sum_{p}\prod_{i = 1}^{|S|}(p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}
\]

考虑如何快速计算 \(\sum_{p}\prod_{i = 1}^{|S|}(p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\)。似乎不是很好算?考虑按照 \(|S|\) 分组。

\[\sum_{x = 0}^n (-1)^x \sum_{p'\subseteq p, |p'|=x} \sum_{\{l_i\},|l| = x} \Big(\prod_{i = 1}^x (p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\Big)\times (2^n-\sum_{i = 1}^x l_i)!
\]

考虑对后面的 DP,设 \(f_{i, j, s}\) 表示前 \(i\) 个 \(p_i\) 选完了,选出来 \(j\) 个,当前 \(l\) 的选择情况为 \(s\). 转移有:

\[f_{i - 1, j, s} \times \Big(p_i - \sum_{j = 0}^{n-1} \big((s \gg j) \,\&\, 1\big)\times l_j\Big)_{l_k}\to f_{i, j + 1, s \,| \, (1 \ll k)}
\]
\[f_{i - 1, j, s} \to f_{i, j, s}
\]

\[\sum_{p'\subseteq p, |p'|=x} \sum_{\{l_i\},|l| = x} \Big(\prod_{i = 1}^x (p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\Big)\times (2^n-\sum_{i = 1}^x l_i)! \\
= \sum_{s = 0}^{1\ll n}f_{m, x, s}\times \Big(2^n - \sum_{i = 1}^n ((s \gg (i - 1)) \, \& \, 1) \times l_i\Big)!
\]

故原式为:

\[\sum_{x = 0}^n (-1)^x \sum_{s = 0}^{1\ll n}f_{m, x, s}\times \Big(2^n - \sum_{i = 1}^n ((s \gg (i - 1)) \, \& \, 1) \times l_i\Big)!
\]

时间复杂度为 \(\mathcal{O}(nm^22^n)\)。

注意到 DP 状态中的 \(j\) 其实没用,可以省略,因此时间复杂度降到 \(\mathcal{O}(nm2^n)\),可以通过题目。

[ARC093F] Dark Horse Note的更多相关文章

  1. arc093F Dark Horse

    我们可以假设1的位置在1,并且依次与右边的区间合并.答案最后乘上2^n即可. 那么需要考虑1所在的区间与另一个区间合并时,另一个区间的最小值不能为特殊的. 直接求解很难,考虑容斥,钦定在哪几个位置必定 ...

  2. [AtCoder ARC093F]Dark Horse

    题目大意:有$2^n$个人,每相邻的两个人比赛一次.令两个人的编号为$a,b(a\leqslant b)$,若$a\neq 1$,则$a$的人获胜:否则若$b\in S$则$b$获胜,不然$1$获胜. ...

  3. ARC093F Dark Horse 【容斥,状压dp】

    题目链接:gfoj 神仙计数题. 可以转化为求\(p_1,p_2,\ldots,p_{2^n}\),使得\(b_i=\min\limits_{j=2^i+1}^{2^{i+1}}p_j\)都不属于\( ...

  4. ARC093F Dark Horse 容斥原理+DP

    题目传送门 https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 由于不论 \(1\) 在哪个位置,一轮轮下来,基本上过程都是相似的,所以不妨假设 ...

  5. 【arc093f】Dark Horse(容斥原理,动态规划,状态压缩)

    [arc093f]Dark Horse(容斥原理,动态规划,状态压缩) 题面 atcoder 有 \(2^n\) 名选手,编号为 \(1\) 至 \(2^n\) .现在这 \(2^n\) 名选手将进行 ...

  6. ARC 093 F Dark Horse 容斥 状压dp 组合计数

    LINK:Dark Horse 首先考虑1所在位置. 假设1所在位置在1号点 对于此时剩下的其他点的方案来说. 把1移到另外一个点 对于刚才的所有方案来说 相对位置不变是另外的方案. 可以得到 1在任 ...

  7. ARC093 F - Dark Horse

    https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 先钦定\(1\)号站在第一个位置上,那么他第一轮要和\((2)\)打,第二轮要和\((3,4) ...

  8. ARC093 F Dark Horse——容斥

    题目:https://atcoder.jp/contests/arc093/tasks/arc093_d #include<cstdio> #include<cstring> ...

  9. Atcoder Regular Contest 093 D - Dark Horse(组合数学+状压 dp)

    Atcoder 题面传送门 & 洛谷题面传送门 常规题,简单写写罢((( 首先 \(1\) 的位置是什么不重要,我们不妨钦定 \(1\) 号选手最初就处在 \(1\) 号位置,最后答案乘个 \ ...

  10. RazorExtensions Templated Razor Delegates

    原文发布时间为:2011-04-27 -- 来源于本人的百度文章 [由搬家工具导入] Templated Razor Delegates David Fowler turned me on to a ...

随机推荐

  1. HarmonyOS NEXT开发实战教程--招聘app

    这一周忙到起飞,只能在周末发个文章.今天的内容比较简单,是一个招聘app,适合新手友友参考,大佬们可以直接忽略. 看一下效果图: 这是一个比较常见的应用,大家做这类应用建议大家先分析一下应用和页面的结 ...

  2. 图解Spring源码4-Spring Bean的作用域

    >>>点击去看B站配套视频<<< 系列文章目录和关于我 1. 从一个例子开始 小陈经过开店标准化审计流程后,终于拥有了一家自己的咖啡店,在营业前它向总部的咖啡杯生产 ...

  3. Vue3自定义指令实现权限控制

    使用Pinia(Vue.js的轻量级状态管理库,是Vuex的替代品)来管理用户权限,并结合自定义指令控制元素的显隐.步骤操作如下: 1.安装Pinia: npm install pinia 或 yar ...

  4. AI智能体的技术架构与解决方案

    相比于传统软件,AI智能体是一个新兴事物,技术架构和解决方案仍处在高速迭代中.所以,本文章将重点放在理清AI智能体相关的技术脉络,而非具体技术实现.更多相关知识还需要读者通过第三方搜索等方式,保持与时 ...

  5. AOP的介绍以及在springboot中的简单使用

    Aop Aop的介绍 什么是Aop Aop面向切面编程,是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行 ...

  6. 1-python中的两大法宝和加载数据

    python中的两大法宝和加载数据 1. Python两大法宝 ① Python3.6.3相当于一个package,package里面有不同的区域,不同的区域有不同的工具. ② Python语法有两大 ...

  7. ES索引迁移优化:3倍速ReIndex + 零感知切换

    在大模型驱动的时代,向量模型.索引抽取模型.文本切分模型(chunking)的迭代速度令人目不暇接,几乎每几个月就要升级一次.随之而来的,是Elasticsearch索引结构的频繁变更需求.然而,ES ...

  8. Java源码分析系列笔记-15.CompletableFuture

    目录 1. 是什么 2. Future VS CompletableFutre 3. 使用 3.1. 运行一个不返回结果的任务 3.2. 运行一个返回结果的任务 3.3. 线程池 3.4. 手动完成任 ...

  9. AI应用实战课学习总结(4)医疗数据可视化

    大家好,我是Edison. 最近入坑黄佳老师的<AI应用实战课>,记录下我的学习之旅,也算是总结回顾. 今天是我们的第4站,通过一个经典的医疗数据集来进行数据可视化的实战. 数据集介绍 这 ...

  10. java--struts的数据处理、文件上传

    Struct2配置 如果项目中用到了其他拦截器,在配置文件(web.xml)中一定要写到Struts拦截器上面 Struts2的Action的几种开发模式 1.继承 ActionSupport(一般使 ...