【学习笔记】[AGC060D] Same Descent Set

2024-01-03 15:12

本文主要是介绍【学习笔记】[AGC060D] Same Descent Set,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本来是想做点多项式调节一下,结果发现这玩意太肝了,似乎并没有起到调节作用。

f ( S ) f(S) f(S)表示符号为 < < <的下标集合恰好 S S S的方案数,因为两个序列完全等同,因此答案等于

∑ S ⊆ { 1 , 2 , . . . , n − 1 } f ( S ) 2 \sum_{S\subseteq \{1,2,...,n-1\}}f(S)^2 S{1,2,...,n1}f(S)2

显然,如果如果同时存在 < < < > > >符号则不好处理,考虑钦定一些位置为 < < <,其他位置任意,可以得到计算式:

f ( S ) = ∑ S ⊆ T ( − 1 ) ∣ T ∣ − ∣ S ∣ ( n l 1 , l 2 , . . . , l k ) f(S)=\sum_{S\subseteq T}(-1)^{|T|-|S|}\binom{n}{l_1,l_2,...,l_k} f(S)=ST(1)TS(l1,l2,...,lkn)

其中 ∑ l i = n \sum l_i=n li=n,表示所有用 < < <符号连接起来的极长段。方便起见,将其记作 g ( T ) g(T) g(T)

大力化式子:

∑ S ∑ S ⊆ T 1 ∑ S ⊆ T 2 ( − 1 ) ∣ T 1 ∣ + ∣ T 2 ∣ g ( T 1 ) g ( T 2 ) = ∑ T 1 ∑ T 2 ( − 1 ) ∣ T 1 ∣ + ∣ T 2 ∣ 2 ∣ T 1 ∩ T 2 ∣ g ( T 1 ) g ( T 2 ) = 2 n − 1 ∑ T 1 ∑ T 2 1 ( − 2 ) ∣ T 1 ∣ 1 ( − 2 ) ∣ T 2 ∣ 2 ∣ T 1 ∩ T 2 ∣ g ( T 1 ) g ( T 2 ) \begin{aligned}\sum_S\sum_{S\subseteq T_1}\sum_{S\subseteq T_2}(-1)^{|T_1|+|T_2|}g(T_1)g(T_2)&=\sum_{T_1}\sum_{T_2}(-1)^{|T_1|+|T_2|}2^{|T_1\cap T_2|}g(T_1)g(T_2)\\&=2^{n-1}\sum_{T_1}\sum_{T_2}\frac{1}{(-2)^{|T_1|}}\frac{1}{(-2)^{|T_2|}} 2^{|T_1\cap T_2|}g(T_1)g(T_2)\end{aligned} SST1ST2(1)T1+T2g(T1)g(T2)=T1T2(1)T1+T22T1T2g(T1)g(T2)=2n1T1T2(2)T11(2)T212T1T2g(T1)g(T2)

其中第二步是枚举 T 1 , T 2 T_1,T_2 T1,T2的补集,也就是分界点。 T 1 ∩ T 2 T_1\cap T_2 T1T2就是共同的分界点

先枚举共同的分界点(注意这一步的系数即为 2 ∣ T 1 ∩ T 2 ∣ 2^{|T_1\cap T_2|} 2T1T2),在分界点之间可能进一步划分成更小的段,容易看出这是将一些元素(实际上一些段)“排列”起来,因此设每一小段的 E G F EGF EGF

A ( x ) = ∑ i ≥ 1 − 1 2 i ! x i A(x)=\sum_{i\ge 1}-\frac{1}{2i!}x^i A(x)=i12i!1xi

则一段的 G F GF GF

B ( x ) = 1 1 − A ( x ) B(x)=\frac{1}{1-A(x)} B(x)=1A(x)1

最后将这些段再次排列起来,答案是

C ( x ) = 1 1 − B ( x ) C(x)=\frac{1}{1-B(x)} C(x)=1B(x)1

只需两次多项式求逆即可。注意计数的对象是两个,因此 B ( x ) B(x) B(x)的每一项系数应当平方,并且最终提取系数时要成上 ( n ! ) 2 × 2 n + 1 (n!)^2\times 2^{n+1} (n!)2×2n+1

int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);    cin>>n,len=1;while(len<=n)len<<=1;init(len<<1);f.a.resize(len);for(int i=1;i<len;i++)f.a[i]=(mod+1>>1)*inv[i]%mod;f.a[0]=1;f=Inv(f,len);for(int i=1;i<len;i++)f.a[i]=-f.a[i]*f.a[i]%mod;f.a[0]=1;f=Inv(f,len);cout<<(f.a[n]*fac[n]%mod*fac[n]%mod*fpow(2,n+1)%mod+mod)%mod;
}

这篇关于【学习笔记】[AGC060D] Same Descent Set的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/566124

相关文章

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx