首页 > 其他分享 >闲话 23.2.24

闲话 23.2.24

时间:2023-02-24 19:13:57浏览次数:60  
标签:24 标号 排列 闲话 23.2 text 序列 mathcal pi

今日模拟赛 T1

它题解讲的依托答辩。

答案即为本质不同的可以得到的所有序列。
可能的前置知识:符号化。当然其实不会也没关系,你就知道下面花体字是个集合就行了。

考虑将答案写作 egf 形式,记为 \(F(x)\)。也就是说,我们将答案序列看做弱标号对象,它们的全体组成了有标号类 \(\mathcal F\)。容易证明的是一定存在一个 \(\mathcal G\) 满足 \(\mathcal F = \text{SET}(\mathcal G)\),也就是 \(F(x) = \exp G(x)\)。
考虑归并两个排列时若上下存在相同的值,则我们可以随意选择两个排列中的一个,将一段数字归并入长序列。这就给出了两个排列的一系列划分,每个部分可以随意决定两个排列的子段在答案序列中的先后顺序,与其他部分互不干扰。举例来说,当上下两段的前七个数字分别为 \((1, 6, 5, 3, 7, 2, 4, \dots) \quad (1, 6, 2, 3, 7, 4, 5, \dots)\) 时,我们对下标能划分为 \(([1, 1], [2, 4], [5, 7], \dots)\)。模拟归并过程即可得到这划分。将这划分的组合看做 \(\text{Set}\) 构造(多项式 \(\exp\))即得。另一种思考方向是将排列拆成置换环,我没细想。

考虑 \(F(x)^2\) 的组合意义。
我们选择两个组合对象 \(a_1, a_2\in \mathcal F\),对应的序列长度为 \(2i, 2j\),他们定是由两个强标号的排列互相交错得到的。我们定义他们的乘法即为对两个强标号排列分别作重标号,方法共有 \(\dbinom{i + j}{i}\) 种。这样我们就能得到一个长度为 \(2(i + j)\) 的新排列。注意到由于 \(a\) 弱标号,这样得到的组合类会有重复。可以证明这样得到的组合类就是可以得到的所有序列组成的组合类。
我们考虑最终答案一定形如 \(i\ge 1,\ f_i\in \mathcal F\) 的重标号并列,也就是去掉本质不同的限制,而这由 \(\mathcal F = \text{SET}(\mathcal G)\) 可以退化到两个元素的并列。因此有如上结论。

考虑 \([x^n/n!]F(x)^2\) 的提取。
我们知道,若两个排列的划分数量为 \(k\),则它对答案的贡献为 \(2^k\)。记一对排列 \((\pi, \pi')\) 的划分数量为 \(\text{div}(\pi, \pi')\),则我们可以得到

\[[x^n/n!]F(x)^2 = \sum_{|\pi|, |\pi'| = n} 2^{\text{div}(\pi, \pi')} = \prod_{i = 1}^n (i^2 + 1) \]

前一个等号由组合意义得来,显然。后一个等号题解说考虑 \(1\) 的贡献,我由于没理解所以先把式子放在上面。

这也就可以在 \(O(n)\) 的复杂度内得到 \(F(x)^2\),随后作多项式开根即得答案。

我不清楚为何有人会套取数据过题。还是说不想把 1e5 的表压缩?
如果有多项式板子的话代码很简单。

code
signed main() {
	cin >> n; 
	poly f(n + 1);
	f[0] = 1; int va = 1;
	rep(i,1,n) {
		va = 1ll * va * (1ll * i * i % mod + 1) % mod;
		f[i] = 1ll * va * gifc(i) % mod;
	}
	f = f.sqrt();
	cout << 1ll * f[n] * gfac(n) % mod << '\n';
}

标签:24,标号,排列,闲话,23.2,text,序列,mathcal,pi
From: https://www.cnblogs.com/joke3579/p/chitchat230224.html

相关文章

  • 代码随想录算法Day24 | 回溯算法理论基础,77.组合
    回溯算法理论基础回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯法通常使用递归来实现,在递归过程中不断尝试各种可能的解决方案,如果发现当前的解决方案不可行,就回溯......
  • 2月24日学习总结
    上午关于操作技巧ctrl+shift+tab左移标签栏;ctrl+tab右移标签栏错误码详细介绍《谈谈接口错误码》​​https://www.jianshu.com/p/d1fba0068b36​​我的理解:就如404、403这种......
  • 今天是2023年2月24日,周五下班前摸鱼中
    当前我在听一个台湾广播,主持人说他们马上要放4天假,一会说国语,一会说闽南语,好好玩。突然想起来,在我上初中的时候,我有一个随身听,是我们村一个小伙伴抵账给我的,当时他借了我1......
  • 2-24总结
    经过昨天的写代码,不是发现了一个无法运行的问题。发现是由于servlet的代码发生了错误,但是我和博主的环境并不相同,于是乎借鉴了同学们上学期的代码在网上搜索了一番之后,希......
  • C/C++个人通讯录管理系统[2023-02-24]
    C/C++个人通讯录管理系统[2023-02-24]使用文件进行存储和管理。程序启动时可从文件中读取信息,或从键盘输入信息;运行过程中如添加或删除记录时也可对文件进行存取;退出前......
  • 2.24 汇报之强化学习
    1、强化学习的基础理解:强化学习中的状态随机性有两个来源:动作的执行是根据策略函数随机抽取的、下一个状态是根据策略函数随机抽样的。总回报是所有步骤的奖励之和,希望强......
  • P3247 [HNOI2016]最小公倍数 题解
    题意简述:给定一个无向图,边权带两个值\((a,b)\),给定\(q\)次询问,每次询问给定两个点,求两个点直接是否有\(\max(a)=x\)且\(\max(b)=y\)的简单或非简单路径。解:如果......
  • P2489 [SDOI2011]迷宫探险 题解
    题意简述:一个\(n\timesm\)的带墙体单入口多出口迷宫中有\(k\)个陷阱,陷阱分为有害或无害,有害会使人掉血,给出所有垃圾的有害与无害的所有排列组成的概率,给定人的血量,求......
  • P3224 [HNOI2012]永无乡 题解
    典型Splay练习题。开始建\(n\)个Splay,每一次建边用并查集判断是否在一个子图,不在就合并,即把一个Splay的所有点全插入到另一个Splay中,需要合并的点可以用vector存储。但......
  • 2023.02.24 - localStorage和sessionStorage在不同标签页间通信情况
    在访问http://example.com/page1时,可以在浏览器开启有A、B和C三个标签页。在localStorage存储下作用的是当前域同端口的存储共享,所得的结果是【同域名下同端口】的local......