[ARC093F] Dark Horse Note
\(\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_{p}\prod_{i = 1}^{|S|}(p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\)。似乎不是很好算?考虑按照 \(|S|\) 分组。
\]
考虑对后面的 DP,设 \(f_{i, j, s}\) 表示前 \(i\) 个 \(p_i\) 选完了,选出来 \(j\) 个,当前 \(l\) 的选择情况为 \(s\). 转移有:
\]
\]
则
= \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的更多相关文章
- arc093F Dark Horse
我们可以假设1的位置在1,并且依次与右边的区间合并.答案最后乘上2^n即可. 那么需要考虑1所在的区间与另一个区间合并时,另一个区间的最小值不能为特殊的. 直接求解很难,考虑容斥,钦定在哪几个位置必定 ...
- [AtCoder ARC093F]Dark Horse
题目大意:有$2^n$个人,每相邻的两个人比赛一次.令两个人的编号为$a,b(a\leqslant b)$,若$a\neq 1$,则$a$的人获胜:否则若$b\in S$则$b$获胜,不然$1$获胜. ...
- 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\)都不属于\( ...
- ARC093F Dark Horse 容斥原理+DP
题目传送门 https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 由于不论 \(1\) 在哪个位置,一轮轮下来,基本上过程都是相似的,所以不妨假设 ...
- 【arc093f】Dark Horse(容斥原理,动态规划,状态压缩)
[arc093f]Dark Horse(容斥原理,动态规划,状态压缩) 题面 atcoder 有 \(2^n\) 名选手,编号为 \(1\) 至 \(2^n\) .现在这 \(2^n\) 名选手将进行 ...
- ARC 093 F Dark Horse 容斥 状压dp 组合计数
LINK:Dark Horse 首先考虑1所在位置. 假设1所在位置在1号点 对于此时剩下的其他点的方案来说. 把1移到另外一个点 对于刚才的所有方案来说 相对位置不变是另外的方案. 可以得到 1在任 ...
- ARC093 F - Dark Horse
https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 先钦定\(1\)号站在第一个位置上,那么他第一轮要和\((2)\)打,第二轮要和\((3,4) ...
- ARC093 F Dark Horse——容斥
题目:https://atcoder.jp/contests/arc093/tasks/arc093_d #include<cstdio> #include<cstring> ...
- Atcoder Regular Contest 093 D - Dark Horse(组合数学+状压 dp)
Atcoder 题面传送门 & 洛谷题面传送门 常规题,简单写写罢((( 首先 \(1\) 的位置是什么不重要,我们不妨钦定 \(1\) 号选手最初就处在 \(1\) 号位置,最后答案乘个 \ ...
- RazorExtensions Templated Razor Delegates
原文发布时间为:2011-04-27 -- 来源于本人的百度文章 [由搬家工具导入] Templated Razor Delegates David Fowler turned me on to a ...
随机推荐
- HarmonyOS NEXT开发实战教程--招聘app
这一周忙到起飞,只能在周末发个文章.今天的内容比较简单,是一个招聘app,适合新手友友参考,大佬们可以直接忽略. 看一下效果图: 这是一个比较常见的应用,大家做这类应用建议大家先分析一下应用和页面的结 ...
- 图解Spring源码4-Spring Bean的作用域
>>>点击去看B站配套视频<<< 系列文章目录和关于我 1. 从一个例子开始 小陈经过开店标准化审计流程后,终于拥有了一家自己的咖啡店,在营业前它向总部的咖啡杯生产 ...
- Vue3自定义指令实现权限控制
使用Pinia(Vue.js的轻量级状态管理库,是Vuex的替代品)来管理用户权限,并结合自定义指令控制元素的显隐.步骤操作如下: 1.安装Pinia: npm install pinia 或 yar ...
- AI智能体的技术架构与解决方案
相比于传统软件,AI智能体是一个新兴事物,技术架构和解决方案仍处在高速迭代中.所以,本文章将重点放在理清AI智能体相关的技术脉络,而非具体技术实现.更多相关知识还需要读者通过第三方搜索等方式,保持与时 ...
- AOP的介绍以及在springboot中的简单使用
Aop Aop的介绍 什么是Aop Aop面向切面编程,是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行 ...
- 1-python中的两大法宝和加载数据
python中的两大法宝和加载数据 1. Python两大法宝 ① Python3.6.3相当于一个package,package里面有不同的区域,不同的区域有不同的工具. ② Python语法有两大 ...
- ES索引迁移优化:3倍速ReIndex + 零感知切换
在大模型驱动的时代,向量模型.索引抽取模型.文本切分模型(chunking)的迭代速度令人目不暇接,几乎每几个月就要升级一次.随之而来的,是Elasticsearch索引结构的频繁变更需求.然而,ES ...
- Java源码分析系列笔记-15.CompletableFuture
目录 1. 是什么 2. Future VS CompletableFutre 3. 使用 3.1. 运行一个不返回结果的任务 3.2. 运行一个返回结果的任务 3.3. 线程池 3.4. 手动完成任 ...
- AI应用实战课学习总结(4)医疗数据可视化
大家好,我是Edison. 最近入坑黄佳老师的<AI应用实战课>,记录下我的学习之旅,也算是总结回顾. 今天是我们的第4站,通过一个经典的医疗数据集来进行数据可视化的实战. 数据集介绍 这 ...
- java--struts的数据处理、文件上传
Struct2配置 如果项目中用到了其他拦截器,在配置文件(web.xml)中一定要写到Struts拦截器上面 Struts2的Action的几种开发模式 1.继承 ActionSupport(一般使 ...