首页 > 其他分享 >闲话 23.2.26

闲话 23.2.26

时间:2023-02-26 11:00:44浏览次数:51  
标签:26 le 闲话 sum times ge 23.2 binom Bob

闲话

今日推歌:
帝国少女 - R Sound Design feat. 初音ミク
恋爱裁判 - 40mP feat. 初音ミク

杂题

今天打算刷一天杂题
所以随写随更新吧

好久没写了啊(

青鱼和区间

绝顶聪明的 Alice 和 Bob 在玩游戏。

Alice 选定一个 \([1, n]\) 内的整数 \(k\),Bob 需要猜出这个数字。Bob 最开始会确定一个区间集合 \(S = \{[l_i, r_i] : 1\le l_i \le r_i\le n\}\),他可以任意次地选择这其中的任意个区间,并同时询问 \(k\) 是否在这些区间中,Alice 会正确地同时回答。

给定 \(n\)。请计数集合 \(S\) 的数量,满足无论 \(k\) 是什么数字,Bob 都能通过恰当的操作(不加推导地)确定这个数字。答案对 \(998244353\) 取模。

\(n\le 10^5\)。

就是问有多少个集合 \(S\) 满足 \(\forall i \in [1, n],\ \exists T\subseteq S,\ \bigcap_{k\in T} k = \{i\}\)。
这题 lyin 昨天不让我在他那看题解
你先别急 我急完了 因而有了这个杂题

对于第 \(i\) 个数,记覆盖了 \(i\) 的区间集合为 \(S_i \subseteq S\)。构造一个长度为 \(n\) 的序列 \(\{a_i\}\),满足 \(a_i = a_j\text{ iff } S_i = S_j\)。

可以发现,如果 \(a_i = a_j \text{ s.t. } i < j\),则 \((i, j]\) 里的数定是无法被表示出来的。这证明显然,由于一个区间覆盖了 \(i\) 则覆盖了 \(j\)。我们可以从这里出发,考虑刻画不合法集合的性质。可以考虑这样的构造:
构造一个序列 \(b\),初始为空。维护指针 \(i\),初始在位置 \(1\)。每次将 \(a_i\) 放入 \(b\) 序列的末尾,取 \(\text{arg max}(a_j)\) 的 \(j\),指针跳 \(i \leftarrow j + 1\)。举个例子:
\(a = [1, 9, 9, 8, 1, 0, 7, 2, 3, 5, 2, 3, 3]\)
\(b = [1, 0, 7, 2, 3]\)

这样我们就能通过 \(a\to b\) 来确定不合法的 \(a\) 了。
设 \(f(i)\) 是 \(n = i\) 时的答案,\(g(i, j)\) 是长度为 \(i\) 的 \(a\) 缩减到长度为 \(j\) 的 \(b\) 对应的 \(S\) 的数量,则我们可以知道

\[f(i) = 2^{\binom{i + 1}{2}} - \sum_{j = 1}^{i - 1} f(j) \times g(i, j) \]

\[g(i, j) = g(i - 1, j - 1) + \sum_{k\ge 0} g(i - 1 - (k + 1), j - 1)\times 2^{\binom{k + 1}{2}} \]

第一个是所有可能减去不合法的可能,第二个是考虑有一段长度为 \(k\ge 0\) 的区间被跳过的可能。

这就能做到 \(O(n^3)\)。但我们还可以走得更远。

观察第二个方程的形式。我们可以预见,这形式导出的是第一维的卷积,因此不妨对第一维求和。设

\[G_j(x) = \sum_{i\ge 0} g(i, j) x^i\quad A(x) = x + \sum_{k\ge 2} 2^{\binom{k - 1}{2}} x^k \]

则我们能知道

\[\begin{aligned} G_j(x) &= \sum_{i\ge 0} g(i, j) x^i \\ &= \sum_{i\ge 0} g(i - 1, j - 1) x^i + \sum_{i\ge 0} \sum_{k\ge 0} g(i - 1 - (k + 1), j - 1)\times 2^{\binom{k + 1}{2}} x^i \\ &= xG_{j - 1} + \sum_{k\ge 0} 2^{\binom{k + 1}{2}} \times \left( \sum_{i\ge 0} g(i - 2 - k, j - 1)x^i\right) \\ &= xG_{j - 1} + \sum_{k\ge 0} 2^{\binom{k + 1}{2}} x^{k + 2} \times \left( \sum_{i\ge 0} g(i, j - 1)x^i\right) \\ &= xG_{j - 1} + \sum_{k\ge 0} 2^{\binom{k - 1}{2}} x^{k} \times G_{j - 1}(x) \\ &= G_{j - 1}(x) A(x) \end{aligned} \]

即 \(G_{j}(x) = A(x)^j\)。

观察第一个方程的形式。设

\[F(x) = \sum_{i\ge 0} f(i) x^i\quad H(x) = \sum_{i\ge 0} 2^{\binom{i + 1}{2}} x^i \]

则我们由这个半在线卷积的形式可以知道

\[\sum_{j = 1}^i f(j) g(i, j) = H[i] \]

也就是

\[H[i] = \sum_{j = 1}^i f(j) [x^i] A(x)^j = [x^i] \sum_{j = 1}^i f(j) A(x)^j = [x^i] F(A(x)) \]

也就是 \(H(x) = F(A(x))\)。这启发我们使用拉格朗日反演解决问题。不难得到

\[\begin{aligned} [x^n]F(x) = [x^n] H(A^{\langle -1\rangle}(x)) = \frac{1}{n} [x^{n - 1}] H'(x) \left( \frac{x}{A(x)}\right)^n \end{aligned}\]

这形式的计算是简便的。因此可以在 \(O(n\log n)\) 的复杂度内得到(所有 \(1\le m\le n\) 的)答案。由于原题是任意模数,常数可能大点。

Submission.

标签:26,le,闲话,sum,times,ge,23.2,binom,Bob
From: https://www.cnblogs.com/joke3579/p/chitchat230226.html

相关文章

  • 2023.2.25——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,配置好了git,并且学会了如何将本地代码利用git上传到GitHub上。我了解到的知识点:Github首次上传代码测试-sodamate-......
  • 2023.2.24AcWing蓝桥杯集训·每日一题
    今日复习的知识点为递归。递归对于笔者而言是个比较难以理解的知识点,后续会多进行递归题目的练习。AcWing1497.树的遍历题目描述一个二叉树,树中每个节点的权值互不相同......
  • 2023.2.25每日总结
    今天学习了控件toolbarandroid:layout_width="match_parent"android:layout__height="?attr/actionBarSize"android:background="#fff00app:navigationlcon="@dra......
  • 2023.2.25周六每日总结
    今天根据b站得javaweb教程学习了两个小时,成功理解了数据库的链接原理,以及connection的使用方法,对不同版本的mysql之间连接的区别有了进一步的理解所以利用jdbc在java中......
  • 2023.2.25AcWing蓝桥杯集训·每日一题
    今日复习的知识点为并查集。AcWing1249.亲戚题目描述或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整......
  • 闲话 23.2.25
    闲话编▇▇则4.选手程序中只允许通过▇▇▇▇▇读写▇▇▇▇▇指定库函数▇▇▇▇▇▇▇▇▇▇的方式与外部环境通信。在程序中严禁▇▇▇▇▇试图▇▇▇▇▇使用......
  • ABC267D 题解
    前言题目传送门!更好的阅读体验?两篇题解的代码写得很复杂,我是没有想到。思路很显然对于一个点,它必定会进入一个循环节。如何判断它进入循环节了呢?当一个点被经过两次,......
  • 开课博客,顺便把今天的水一下。 2023.2.25
    一、介绍自己  来自信息科学与技术学院的信2105-3班的孟德昊,喜欢打游戏看番剧,不喜欢学习,二、现状,经验和计划 现状就是学习不挂科就算成功,学习不是很上心,主要是没心......
  • vue.js代码026
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>事件绑定</title><scripttype="text/javascript"src="../js/vue.js"></script></head>......
  • 每日算法--2023.2.25
    1.力扣373--和最小的k个数对classSolution{classNode{publicintsum;publicinti;publicintj;Node(intsum,inti,i......