约定:$[x^{n}]F(x)$​​​​​​表示多项式$F$​​​​​​的$n$​​​​​​次项系数

对于多项式$F$​​​​​​,定义$F$​​​​​的复合逆$\hat{F}$​​​​​为满足$F(\hat{F}(x))=x$​​​​​​的多项式

性质1:$F$​​​​​​​​存在复合逆的充要条件为$[x^{0}]F(x)=0$​​​​​​​​且$[x^{1}]F(x)\ne 0$​​​​​​​​

性质2:若$F$​存在复合逆,则$\hat{F}$​存在复合逆且复合逆为$F$​(那么显然$\hat{F}$​​​满足性质1的条件)

拉格朗日反演:若$F$​​​​​存在复合逆,则$[x^{n}]\hat{F}(x)=\frac{1}{n}[x^{n-1}]\frac{1}{F^{n}(x)}$​

另类拉格朗日反演:若$F$​​​存在复合逆,则$[x^{n}]\hat{F}^{k}(x)=[x^{-(k+1)}]\frac{F'(x)}{F^{n+1}(x)}$​

为了方便,将该式子变形,也即$[x^{n}]\hat{F}^{k}(x)=[x^{n-k}]F'(x)(\frac{x}{F(x)})^{n+1}$​​​​​

枚举其中非0的元素个数$i$,这$i$个数不在同一列上,即有${n\choose i}$种选法,同时其元素值有$(2c)^{i}$​种,接下来对于剩下的$n-i$​个0,只需要在剩下的$2n-i$个位置中任填即可

综上,即有$q_{n}=\sum_{i=0}^{n}{n\choose i}(2c)^{i}{2n-i\choose n-i}=\sum_{i=0}^{n}{n\choose i}(2c)^{i}{2n-i\choose n}$

考虑$q_{n}$的生成函数$Q(x)=\sum_{n\ge 0}q_{n}x^{n}$​,由上式不难得到
$$
Q(x)=(2cx+1)^{n}\sum_{i\ge 0}{i+n\choose n}x^{i}=(2cx+1)^{n}\frac{1}{(1-x)^{n+1}}=\frac{1}{2cx+1}(\frac{2cx+1}{1-x})^{n+1}
$$
关于$\sum_{i\ge 0}{i+n\choose n}x^{i}=\frac{1}{(1-x)^{n-1}}$,将${n+i\choose i}$利用插板法理解为$i$个数划分为$n+1$个段(可以为0),利用生成函数即为$[x^{i}](\sum_{j\ge 0}x^{j})^{n+1}=[x^{i}]\frac{1}{(1-x)^{n+1}}$​​​​(当然也可以暴力展开验证)

将后者写成$\frac{x}{F(x)}$​​​的形式,显然$F(x)=\frac{x(1-x)}{2cx+1}$​​​,进而求导可得
$$
F'(x)=\frac{(1-2x)(2cx+1)-2c(x-x^{2})}{(2cx+1)^{2}}=-\frac{2cx^{2}+2x-1}{(2cx+1)^{2}}
$$
将$F'(x)$​​在$\frac{1}{2cx+1}$​​​​​中提出,并代入另类拉格朗日反演的式子,即
$$
Q(x)=-\frac{2cx+1}{2cx^{2}+2x-1}F'(x)(\frac{x}{F(x)})^{n+1}=-\frac{2c\hat{F}(x)+1}{2c\hat{F}^{2}(x)+2\hat{F}(x)-1}
$$
考虑$F$​的复合逆$\hat{F}(x)$​,将$F$​代入$F(\hat{F}(x))=x$​并整理,即$\hat{F}^{2}(x)+(2cx-1)\hat{F}(x)+x=0$​​,再根据求根公式不难得到
$$
\hat{F}(x)=\frac{-(2cx-1)\pm\sqrt{\Delta(x)}}{2}(\Delta(x)=(2cx-1)^{2}-4x=4c^{2}x^{2}-4(c+1)x+1)
$$
代入$Q(x)$​​并计算,可得$Q(x)=\Delta^{-\frac{1}{2}}(x)$​​​,进而$2\Delta Q'=2\Delta(-\frac{1}{2}\Delta^{-\frac{3}{2}}\cdot \Delta')=-\Delta'Q$

考虑两者的$n$​​次项系数,即
$$
8c^{2}(n-1)q_{n-1}-8(c+1)nq_{n}+2(n+1)q_{n+1}=-8c^{2}q_{n-1}+4(c+1)q_{n}
$$
整理后可得$q_{n+1}=\frac{(2c+2)(2n+1)q_{n}-4c^{2}nq_{n-1}}{n+1}$​​​​​(初始$q_{0}=1$​​​​且$q_{1}=2c+2$​​​​)​

预处理逆元后即可$o(n)$​求解,总复杂度为$o(tn)$,可以通过

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 10000005
4 #define mod 998244353
5 #define ll long long
6 int t,n,c,ans,inv[N],q[N];
7 int main(){
8 inv[0]=inv[1]=1;
9 for(int i=2;i<N;i++)inv[i]=(ll)(mod-mod/i)*inv[mod%i]%mod;
10 scanf("%d",&t);
11 while (t--){
12 scanf("%d%d",&n,&c);
13 c=(c<<1)%mod,ans=0,q[0]=1,q[1]=(c+2)%mod;
14 for(int i=1;i<n;i++)q[i+1]=((ll)(c+2)*((i<<1)+1)%mod*q[i]-(ll)c*c%mod*i%mod*q[i-1]%mod+mod)%mod*inv[i+1]%mod;
15 for(int i=1;i<=n;i++)ans^=q[i];
16 printf("%d\n",ans);
17 }
18 return 0;
19 }

[hdu6997]愿望幽灵的更多相关文章

  1. Rafy 框架 - 幽灵插件(假删除)

      Rafy 框架又添新成员:幽灵插件.本文将解释该插件的场景.使用方法.原理.   场景 在开发各类数据库应用系统时,往往需要在删除数据时不是真正地删除数据,而只是把数据标识为'已删除'状态.这些数 ...

  2. 听着好像很牛的特效——幽灵按钮DOM

    给大家分享一个听着好像很牛的东西——幽灵按钮,这个玩意对于艺术设计细胞在高中决定不在考试试卷上画画的我来说,实在不感冒.但是这个按钮的设计元素很流行,一个网页东西不做几个,光放上几个按钮就会显得很高端 ...

  3. [QDB] 幽灵分享:QDataSet+TQMSSQLConverter 实战技巧

    转载自QDAC官网网站,文章发现问题可能随时更新,最新版本请访问:http://blog.qdac.cc/?p=3066 [注]本文由网友 幽灵 分享,由 swish 整理并重新编辑.1.将A数据库A ...

  4. Html - 幽灵键盘

    Css ;text-align:center} #shurufa_gongneng,#shurufa_num_123,#shurufa_num_456,#shurufa_num_789{} #shur ...

  5. 关于IE6幽灵字体

    前言:今天做项目的时候在IE6下出现了这样的一种现像,这种情况只在IE6下出现,最后在网友的帮助下这个问题最终得到了解决.所以马上作了下笔记! 情况如下图: 我在网上找了点资料出现IE6下幽灵字体的情 ...

  6. 测试开发Python培训:实现屌丝的图片收藏愿望(小插曲)

    测试开发Python培训:实现屌丝的图片收藏愿望(小插曲) 男学员在学习python的自动化过程中对于爬虫很感兴趣,有些学员就想能收藏一些图片,供自己欣赏.作为讲师只能是满足愿望,帮助大家实现对美的追 ...

  7. 测试开发Python培训:实现屌丝的黄色图片收藏愿望(小插曲)

    男学员在学习python的自动化过程中对于爬虫很感兴趣,有些学员就想能收藏一些情色图片,供自己欣赏.作为讲师只能是满足愿望,帮助大家实现对美的追求,http://wanimal.lofter.com/ ...

  8. 史上最大的CPU Bug(幽灵和熔断的OS&SQLServer补丁)

    背景 最近针对我们的处理器出现了一系列的严重的bug.这种bug导致了两个情况,就是熔断和幽灵. 这就是这几天闹得人心惶惶的CPU大Bug.消息显示,以英特尔处理器为代表的现代CPU中,存在可以导致数 ...

  9. 黑暗幽灵(DCM)木马详细分析

    黑暗幽灵(DCM)木马详细分析 0x00 背景 只要插上网线或连上WIFI,无需任何操作,不一会儿电脑就被木马感染了,这可能吗?近期,腾讯反病毒实验室拦截到一个“黑暗幽灵”木马的新变种,该木马功能强大 ...

随机推荐

  1. 01Prism WPF 入门实战 - 项目准备

    1.概要 这一系列将进行Prism+WPF技术的实战讲解.实战项目内容选型为Email邮件收发的客户端(WeMail),项目结构简单方便大家理解. 相关技术:C#.WPF.Prism 软件开发环境:V ...

  2. 5.2 MySQL备份工具

    物理备份: 冷备份:cp tar 逻辑备份: mysqldump mysqldump:是MySQL的客户端命令,通过mysql协议连接至mysql服务器进行备份 -A, --all-databases ...

  3. jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java监控告警(二)

    一.拓扑图 二.收集数据 2.1前期准备 创建共享目录,即为了各节点都创建该目录,有两个文件,做数据共享 /home/target/prom-jvm-demo 1.下载文件 jmx_prometheu ...

  4. SONiC架构分析

    目录 系统架构 设计原则 核心组件 SWSS 容器 syncd 容器 网络应用容器 内部通信模型 SubscriberStateTable NotificationProducer/Consumer ...

  5. Server Tools(服务器工具)

    服务器工具 1.发布 # Process: MXD 转 Web 地图 arcpy.MXDToWebMap_server("", "", "" ...

  6. Python基础 | 字符串格式化输出及print()函数介绍

    在写代码时,我们会经常与字符串打交道,Python中控制字符串格式通常有三种形式,分别是使用str%,str.format(),f-str,用法都差不多,但又有一些细微之差. 一起来看看吧~~~ 一. ...

  7. 关于django配置好静态文件后打开相关图片页显示404的解决方法

    在url里设置以上代码即可,即可解决图片显示异常(出现此问题的根本原因是django版本)django3后需要加以上代码)

  8. PAT (Basic Level) Practice (中文)1017 A除以B (20分)

    1017 A除以B (20分) 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一 ...

  9. 2021.7.17 NKOJ周赛总结

    发现自己简直是个智障:T1模数写成1e9+9:T2居然没有考虑刚好一个周期的情况:T4用"%lld"读入"unsigned long long".~qwq~ T ...

  10. 《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)

    1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战. 2.d ...