题解 : P14461

news/2025/11/10 21:23:31/文章来源:https://www.cnblogs.com/krsyunalriqwq/p/19208330

原题链接

数学题。

记多项式系数向量为 \(a=(a_1,a_2,...,a_m)\)。定义线性算子 \(D\) 作用在某系数向量上为 \((D \cdot a)_i=(i+1)a_{i+1}\)\(0 \le i \le m\)

题目给定递推:

\(\begin{cases} F_i(x)=G_{i-1}(x)+G^{\prime}_{i-1}(x) \\ \\ G_i(x)=F_{i-1}(X)-F^{\prime}_{i-1}(x) \end{cases}\)

用恒等算子 \(I\)\(D\) 表示为为向量形式:

\(F_i=(I+D)G_{i-1}\)\(G_i=(I-D)F_{i-1}\)

化简:

\(F_i=(I+D)G_{i-1}=(I+D)(I-D)F_{i-1}=(I-D)^2F_{i-1}\)

\(G_i=(I-D)F_{i-1}=(I-D)(I+D)G_{i-1}=(I-D)^2G_{i-1}\)

因此该递推式就是作用算子 \(S=(I-D)^2\)

\(k=\lfloor \frac{n}{2} \rfloor\),则

\(n\) 为偶数:\(F_i=S^k \cdot F_0\)\(G_i=S^k \cdot G_0\)

\(n\) 为奇数:\(F_i=(I+D) \cdot S^k \cdot G_0\)\(G_i=(I-D) \cdot S^k \cdot F_0\)

因此问题转化为如何高效计算 \(S^k=(I-D^2)^k\) 在系数向量上的作用。

我们利用二项式展开:

\(S^k=(I-D^2)^k=\sum\limits_{t=0}^{k} {k\choose t} \cdot (-1)^t \cdot D^{2t}\)

对于某一初始向量 \(a\),第 \(i\) 个系数为:

\((S^ka)_i=\sum\limits_{t\ge 0} {k\choose t} \cdot (-1)^t \cdot (D^{2t}a)_i\)

\(D^{2t}\) 的作用写成系数形式:

\((D^{2t}a)_i=(i+1)(i+2) \cdots (i+2t) \cdot a_{i+2t}=\frac{(i+2t)!}{i!} \cdot a_{i+2t}\)

因此得到显式公式:

\((S^ka)_i=\sum\limits_{t=0}^{\lfloor \frac{m-i}{2} \rfloor} {k\choose t} \cdot \frac{(i+2t)!}{i!} \cdot a_{i+2t}\)

\(n\) 为奇数时,再做一次 \(I\pm D\) 即可。

AC代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
const int N=5010;
int f0[N],g0[N];
int frc[N],inv[N];
int c[N];
int fk[N],gk[N],fn[N],gn[N];
int qkp(int a,int b){int s=1;while(b){if(b&1) s=s*a%mod;a=a*a%mod,b>>=1;}return s;
}
void ask(int *a,int *b,int m){for(int i=0;i<=m;++i) b[i]=0;for(int i=0;i<=m;++i){int lim=(m-i)/2;for(int t=0;t<=lim;t++){int x=c[t];if(t&1) x=(mod-x)%mod;int p=frc[i+2*t]*inv[i]%mod;b[i]=(b[i]+x*p%mod*a[i+2*t])%mod;}}
}
int n,m;
void init(int m){frc[0]=1;for(int i=1;i<=m;i++) frc[i]=frc[i-1]*i%mod;inv[m]=qkp(frc[m],mod-2);for(int i=m;i>0;i--) inv[i-1]=inv[i]*i%mod;
}
signed main(){cin.tie(0)->sync_with_stdio(0);cin>>n>>m;init(m);for(int i=0;i<=m;++i) cin>>f0[i],f0[i]%=mod;for(int i=0;i<=m;++i) cin>>g0[i],g0[i]%=mod;int k=n/2;c[0]=1;int km=(k%mod+mod)%mod,num=1;for(int t=1;t<=m/2;++t){int f=(km-(t-1))%mod;if(f<0) f+=mod;num=num*f%mod;c[t]=num*inv[t]%mod;}ask(f0,fk,m);ask(g0,gk,m);if(n&1){for(int i=0;i<=m;++i){int a=gk[i],b=0;if(i+1<=m) b=(i+1)*gk[i+1]%mod;fn[i]=(a+b)%mod;int c=fk[i],d=0;if(i+1<=m) d=(i+1)*fk[i+1]%mod;gn[i]=(c-d)%mod;if(gn[i]<0) gn[i]+=mod;}}else{for(int i=0;i<=m;++i) fn[i]=fk[i],gn[i]=gk[i];}for(int i=0;i<=m;++i){cout<<(fn[i]%mod+mod)%mod<<" ";}cout<<"\n";for(int i=0;i<=m;++i){cout<<(gn[i]%mod+mod)%mod<<" ";}cout<<"\n";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL表的增删改查 - 教程

MySQL表的增删改查 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

20232420 2025-2026-1 《网络与系统攻防技术》实验四实验报告

1.实验内容恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定…

业务用例的概念 - f

系统的边界、有意义的任何事(人、事、物)、参与者与系统交互的 “具体业务场景 / 动作”、用例间关系 做业务用例的核心是梳理“谁(角色)在业务中做什么(动作)、达成什么目标”,用标准化结构呈现业务流程,方便…

P11362 [NOIP2024] 遗失的赋值 题解

P11362 [NOIP2024] 遗失的赋值 题解P11362 [NOIP2024] 遗失的赋值 题解 题目链接 我的博客 前言 笔者在考场上隐约感觉到了什么,感知到T2要比T1简单?但是T2一定是一道数学题,因此笔者使劲推了 \(1\) 个小时的式子,…

2025 年 11 月钢塑复合管厂家推荐排行榜,PSP/衬塑/涂塑/工业/钢衬塑/化工防腐/高强度/缩合式/电磁双热熔钢塑复合管,钢塑复合管件公司推荐

2025 年 11 月钢塑复合管厂家推荐排行榜,PSP/衬塑/涂塑/工业/钢衬塑/化工防腐/高强度/缩合式/电磁双热熔钢塑复合管,钢塑复合管件公司推荐 行业背景与发展趋势 钢塑复合管作为现代工业管道系统的重要组成部分,凭借其…

COLMO洗衣机维修24小时售后服务点电话号码

COLMO洗衣机售后维修电话(24小时/各点)统一客服中心 COLMO洗衣机售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。…

科烁集成灶维修服务丨24h在线报修

科烁集成灶全国各售后服务点网点热线号码-《今日汇总》 科烁集成灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验…

比方燃气灶售后维修-全国统一24小时400中心

比方燃气灶全市各区24小时售后服务点 比方燃气灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,欢迎随…

CF 2070F Friends and Pizza

仍然不会集合幂级数相关。同学你的集合幂级数不过关。 这个题目的预期复杂度第一眼看着可能像是 \(\mathcal{O}(\operatorname{poly}(n)\ V)\),但是细想一下这样或许要跟背包有关,而背包不好表示出两人共选的限制。 …

上菱空调维修热线电话-24小时全国统一报修

上菱空调售后维修电话(24小时)全国统一售后服务 上菱空调售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮…

openharmony部署ollama

需要的文件 通过网盘分享的文件:dot_ollama.tgz链接: https://pan.baidu.com/s/1MW-RgojiF7_R_xiswkMUBg?pwd=ug56 提取码: ug56 --来自百度网盘超级会员v7的分享通过网盘分享的文件:a.tgz链接: https://pan.baidu.…

【算法学习】AC自动机

AC自动机P5357 【模板】AC 自动机 字典树和 kmp 思想的结合。 先把模式串建成一个字符串。然后建立一个fail指针,将他连上失配时应退的尽可能近的节点。我是学习链接

华凌燃气灶全国各市服务点网点热线号码

华凌燃气灶售后维修-全国统一24小时400中心 华凌燃气灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,…

20234320 2025-2026-1 《网络与系统攻防技术》实验四实验报告

20234320 2025-2026-1 《网络与系统攻防技术》实验四实验报告 1.实验内容 1.1 识别恶意代码的文件类型标识,进行脱壳与字符串提取。 1.2 使用IDA Pro静态或动态分析所给exe文件,找到输出成功信息的方法。 1.3 分析自…

102302139 尚子骐 数据采集与融合作业2

作业一1. 完整代码及运行结果点击查看代码 import requests from bs4 import BeautifulSoup import sqlite3 from datetime import datetime import logging# 配置日志 logging.basicConfig(level=logging.INFO, forma…

深入解析:Redis技术应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

6G网络通讯端到端结构

6G网络通讯端到端结构6G网络通讯端到端大结构6G网络通讯端到端结构,还未定型;个人理解供参考:以原有大通讯网络(如现有5G网等)为基础层,现有各类云为服务层,在最终用户和6G接入间增加了AI人工智能层。要达到的目…

万喜消毒柜售后维修中心服务热线电话(2025/已更新)

万喜消毒柜(维修)售后服务中心--报修欢迎您 万喜消毒柜售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,…

20232426 2025-2026-1 《网络与系统攻防技术》实验四实验报告

一、实验目标(内容)恶意代码文件类型标识、脱壳与字符串提取 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息 分析一个自制恶意代码样本rada,并撰写报告 取证分析实践二…

HTTP 的方法和状态码 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …