基础打表练习题

求 A249665 前 \(n\) 项的 \(m\) 次方和,对 \(10^9 + 7\) 取模。

\(1 \leq n \leq 10^{18}\)\(1 \leq m \leq 3\)


我们可以暴力枚举 \(1\)\(n\) 的排列,由此求出 \(a_n\)

经过打表,可以得到 \(A\) 的前几项为 \(1,1,1,2,6,14,28,56,118,254,541,1140,2401,5074,10738\)

由此我们可以得到规律:\(a_n = -a_{n-8}-a_{n-7}+a_{n-5}+a_{n-4}+2 \times a_{n-3}-a_{n-2}+2 \times a_{n-1}\)

于是可以用矩阵快速幂求出 \(1\) 次方和,对于 \(2\) 次方和 \(3\) 次方可以打更多的表,最终会得到一百多项的递推式。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const long long mod=1000000007;
const int K1=8,K2=36,K3=120;
long long k_1[K1+1]={0,2,1000000006,2,1,1,0,1000000006,1000000006};
long long k_2[K2+1]={0,3,2,11,36,57,999999978,999999697,999999268,999999713,1022,1055,999999922,428,708,999999575,641,1883,1536,577,999999772,999999093,999998982,999999574,999999841,114,31,0,999999993,75,17,13,1000000005,1000000005,0,1,1000000006};
long long k_3[K3+1]={0,6,9,119,776,2928,999999866,999947231,999685929,999532233,1006034,3403103,3091675,18854028,41939739,994839435,123907888,686578570,538510624,463875551,593907298,775112621,862799554,826799974,323568509,272946549,865736932,849802794,311419209,805100035,339107278,456958980,305935140,337495512,230577161,989563382,512084924,610163742,175186535,153394145,542690041,50533570,340316201,88175161,908013867,593526711,370645361,270223951,599117789,984653980,300238059,940672603,619708604,241513668,555065433,447221261,517442267,369809014,727409057,654158750,399582554,676918142,975097682,435015557,940699679,119850330,454035523,899881054,501312719,213643333,937627741,348520370,422818051,912039075,988291205,627079501,197735216,763988949,402495671,193045517,116881412,386288279,506736426,560043784,134890183,826753538,554299933,726711648,124505105,979617265,769179718,964951092,201335067,391976488,964735448,16230894,520533206,281250193,800363870,100229687,972206749,12790510,994869596,1367679,999105328,1188015,999184856,110016,999999173,3761,162,1064,999998446,2081,999999729,7,6,1000000006,1000000005,0,1000000006};
long long f1[K3+1]={0,1,1,1,2,6,14,28,56},f2[K3+1],f3[K3+1],sf1[K3+1],sf2[K3+1],sf3[K3+1];
void init(){for(int i=9;i<=K3;i++){for(int j=1;j<=K1;j++){f1[i]+=f1[i-j]*k_1[j]%mod;f1[i]%=mod;}}for(int i=1;i<=K3;i++){f2[i]=f1[i]*f1[i]%mod;f3[i]=f1[i]*f1[i]%mod*f1[i]%mod;sf1[i]=(sf1[i-1]+f1[i])%mod;sf2[i]=(sf2[i-1]+f2[i])%mod;sf3[i]=(sf3[i-1]+f3[i])%mod;}
}
long long A[K3+1][K3+1],I[K3+1][K3+1],T[K3+1][K3+1];
long long solve1(long long n){if(n<=K1){return sf1[n];}for(int i=1;i<K1;i++){A[i][i-1]=1;}for(int i=1;i<=K1;i++){A[K1-i][K1-1]=k_1[i];A[K1-i][K1]=k_1[i];}A[K1][K1]=1;for(int i=0;i<=K1;i++){I[i][i]=1;}long long pow_num=n-K1;while(pow_num){if(pow_num&1){for(int i=0;i<=K1;i++){for(int j=0;j<=K1;j++){T[i][j]=0;for(int k=0;k<=K1;k++){T[i][j]+=I[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K1;i++){for(int j=0;j<=K1;j++){I[i][j]=T[i][j];}}}for(int i=0;i<=K1;i++){for(int j=0;j<=K1;j++){T[i][j]=0;for(int k=0;k<=K1;k++){T[i][j]+=A[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K1;i++){for(int j=0;j<=K1;j++){A[i][j]=T[i][j];}}pow_num>>=1;}long long ans=0;for(int i=0;i<K1;i++){ans+=f1[i+1]*I[i][K1]%mod;ans%=mod;}ans+=sf1[K1]*I[K1][K1]%mod;ans%=mod;return ans;
}
long long solve2(long long n){if(n<=K2){return sf2[n];}for(int i=1;i<K2;i++){A[i][i-1]=1;}for(int i=1;i<=K2;i++){A[K2-i][K2-1]=k_2[i];A[K2-i][K2]=k_2[i];}A[K2][K2]=1;for(int i=0;i<=K2;i++){I[i][i]=1;}long long pow_num=n-K2;while(pow_num){if(pow_num&1){for(int i=0;i<=K2;i++){for(int j=0;j<=K2;j++){T[i][j]=0;for(int k=0;k<=K2;k++){T[i][j]+=I[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K2;i++){for(int j=0;j<=K2;j++){I[i][j]=T[i][j];}}}for(int i=0;i<=K2;i++){for(int j=0;j<=K2;j++){T[i][j]=0;for(int k=0;k<=K2;k++){T[i][j]+=A[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K2;i++){for(int j=0;j<=K2;j++){A[i][j]=T[i][j];}}pow_num>>=1;}long long ans=0;for(int i=0;i<K2;i++){ans+=f2[i+1]*I[i][K2]%mod;ans%=mod;}ans+=sf2[K2]*I[K2][K2]%mod;ans%=mod;return ans;
}
long long solve3(long long n){if(n<=K3){return sf3[n];}for(int i=1;i<K3;i++){A[i][i-1]=1;}for(int i=1;i<=K3;i++){A[K3-i][K3-1]=k_3[i];A[K3-i][K3]=k_3[i];}A[K3][K3]=1;for(int i=0;i<=K3;i++){I[i][i]=1;}long long pow_num=n-K3;while(pow_num){if(pow_num&1){for(int i=0;i<=K3;i++){for(int j=0;j<=K3;j++){T[i][j]=0;for(int k=0;k<=K3;k++){T[i][j]+=I[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K3;i++){for(int j=0;j<=K3;j++){I[i][j]=T[i][j];}}}for(int i=0;i<=K3;i++){for(int j=0;j<=K3;j++){T[i][j]=0;for(int k=0;k<=K3;k++){T[i][j]+=A[i][k]*A[k][j]%mod;}T[i][j]%=mod;}}for(int i=0;i<=K3;i++){for(int j=0;j<=K3;j++){A[i][j]=T[i][j];}}pow_num>>=1;}long long ans=0;for(int i=0;i<K3;i++){ans+=f3[i+1]*I[i][K3]%mod;ans%=mod;}ans+=sf3[K3]*I[K3][K3]%mod;ans%=mod;return ans;
}
int main(){init();long long n;int m;scanf("%lld %d",&n,&m);if(m==1){printf("%lld",solve1(n));}else if(m==2){printf("%lld",solve2(n));}else{printf("%lld",solve3(n));}return 0;
}

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

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

相关文章

计算机深度学习毕设实战-基于卷神经网络深度学习识别水果的成熟度

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

学术双标红 “终结者”!虎贲等考 AI 让降重 + 降 AIGC 双向合规

学术写作中&#xff0c;“查重标红” 与 “AIGC 检测标红” 是两大高频痛点。传统工具要么机械降重导致逻辑断裂&#xff0c;要么无法根除机器痕迹&#xff0c;让论文陷入 “改了又错、错了再改” 的内耗。虎贲等考 AI 以第五代智能技术为核心&#xff0c;创新打造 “语义重构 …

【毕业设计】机器学习基于python深度学习识别水果的成熟度

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

FastAPI异步方法中调用同步方法

在FastAPI的异步方法中正确调用同步方法,避免阻塞整个异步事件循环队列。前言 在异步方法中调用同步方法,会直接阻塞整个事件循环,导致应用在执行同步方法期间无法处理其他任何并发请求,从而拖垮整个服务的性能。 …

复杂项目迭代不踩坑,MonkeyCode 沉浸式开发让 AI 研发可控可追溯

当前AI编程工具百花齐放,但多数仅能实现“编写代码、运行Demo”的基础功能,难以匹配真实工程研发的复杂场景。长亭科技全新推出的AI开发平台MonkeyCode,成功打破这一行业瓶颈——它以企业级研发视角构建,让AI深度参…

深度学习毕设选题推荐:基于python深度学习识别水果的成熟度卷神经网络

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

科研 PPT 还在 “复制粘贴”?虎贲等考 AI:10 分钟生成期刊级演示文稿,逻辑颜值双封神

学术科研场景中&#xff0c;PPT 是成果传递的核心载体 —— 开题答辩要靠它展现研究价值&#xff0c;学术汇报要凭它打动听众&#xff0c;毕业答辩要借它赢得认可。但多数科研人都陷入过 PPT 制作的 “低效怪圈”&#xff1a;用模板套内容却逻辑混乱&#xff0c;手动排版却格式…

中转平台终极测评:poloai.top 凭什么成为开发者首选? - poloapi-ai大模型

随着 AI 大模型在编程、设计、科研等领域的深度渗透,第三方中转平台已成为国内开发者解锁 Claude、GPT、Gemini 等顶尖模型的核心渠道。但市面上各类中转平台良莠不齐,有的存在支付繁琐、稳定性差的问题,有的暗藏隐…

2026年企业知识库私有化部署厂商选型指南:安全与效率双驱动的落地路径 - 品牌2026

2026年,企业数字化转型进入深水区,知识管理的安全性与高效性成为核心诉求,知识库私有化部署凭借“数据不出域、自主可控”的核心优势,成为金融、医疗、政务等高合规行业的刚需选择。据《智能驱动增长:人工智能客户…

问卷设计 “传统派 VS AI 派” 终极对决!虎贲等考 AI:让调研效率与质量双向碾压

做学术调研、市场分析、教学评估&#xff0c;问卷设计是绕不开的关键环节。有人坚守 “传统人工设计”&#xff0c;坚信 “逐字打磨才够精准”&#xff0c;却在逻辑漏洞、表述歧义中反复内耗&#xff1b;有人拥抱 “普通 AI 设计”&#xff0c;期待 “高效产出”&#xff0c;却…

2026标书查重最强工具,快来为你的标书穿上“防弹衣” - 资讯焦点

2026标书查重最强工具,快来为你的标书穿上“防弹衣” 2026年开年,一份来自四川的招投标新规,像一颗投入湖面的石子,在整 个建筑圈激起了千层浪。文件中一句看似不起眼的话——“ 可将滥用人工智能软件编制冗长无序…

2026最新三轮车花鼓企业top5推荐榜!优质生产厂家及服务商解析/选择指南 - 全局中转站

引言 随着绿色出行理念普及与骑行运动专业化发展,三轮车花鼓作为传动系统核心部件,其性能稳定性、传动效率与轻量化水平直接决定骑行体验。据中国自行车协会2025年度行业报告显示,国内三轮车花鼓市场合规产品占比仅…

面积的定义应该突出数学本质

如果问你什么是面积&#xff0c;你会怎么回答&#xff1f; "物体表面或封闭图形的大小就是它们的面积。"这个概念是不是感觉特别熟悉&#xff1f;教科书上是这么写的&#xff0c;我们也一直是这么教孩子们的。并没有感觉有什么不妥。 今天读了张奠宙老师的《深入浅…

配音培训机构排名2025年度配音培训机构十强榜出炉 - 资讯焦点

第三方教育评估机构今日发布2025中国配音培训行业白皮书,综合师资实力、课程完课率、学员接单量与消费投诉率四项核心指标,评选出年度十大配音培训机构。湖南知声教育、喜马拉雅喜播教育、729声工场学院分列前三,成…

将电子书文本转换为盲文格式,生成可打印的盲文文档,供视障用户阅读。

电子书转盲文转换器一、实际应用场景与痛点应用场景视障学生小李需要阅读教材和课外书籍。虽然市面上有少量盲文书籍&#xff0c;但种类有限、价格昂贵、更新缓慢。当前的数字阅读器如读屏软件虽然能朗读文本&#xff0c;但无法替代盲文的触觉阅读体验。盲文具有独特的优势&…

真香警告!上下文工程才是AI开发未来,RAG已死?大模型开发者必看!

RAG已死&#xff0c;上下文工程永存&#xff1a;从炼金术到工程学 当所有人都在为百万级上下文窗口欢呼时&#xff0c;一个残酷的现实被揭开&#xff1a;你塞给模型的信息越多&#xff0c;它反而变得越笨。 你有没有觉得&#xff0c;我们现在开发AI应用特别像在搞一场神秘的炼金…

深度学习计算机毕设之基于python深度学习的餐桌美食识别卷神经网络

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI城市管理综合执法系统:让城市治理有“智”更有“度”

传统城管执法常陷“人海战术”困境&#xff1a;人工巡查效率低、夜间漏检多、跨部门协同慢。而AI城市管理综合执法系统&#xff0c;用“技术慧眼智能大脑”重构治理逻辑&#xff0c;把被动响应变成主动预判&#xff0c;让执法既精准又有温度&#xff0c;这背后是多重技术的协同…

高通推出Dragonwing Q-7790 和 Q-8750 处理器,工业及嵌入式物联网布局已成型

2026年1月5日&#xff0c;拉斯维加斯——在国际消费电子展&#xff08;CES&#xff09;上&#xff0c;高通技术公司今日宣布其物联网产品组合进一步扩展&#xff0c;其中包括全新的高通跃龙™Q系列处理器。在过去18个月中&#xff0c;通过对Augentix、Arduino、Edge Impulse、F…

2026最新自行车花鼓/三轮车差速器企业首选推荐HOVERIC泓瑞凯:专注中高端领域,HOVERIC泓瑞凯实力领航 - 全局中转站

在自行车运动蓬勃发展与绿色出行理念深入人心的当下,花鼓作为自行车传动系统的核心部件,其性能直接关系到骑行体验与安全。2026年,在竞争激烈的中高端自行车配件市场,HOVERIC泓瑞凯(简称“泓瑞凯”)凭借其深厚的…