ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NOI2013 D1T1矩阵游戏

2022-09-14 13:34:10  阅读:244  来源: 互联网

标签:frac 得到 矩阵 times NOI2013 theta D1T1 lambda


NOI2013 D1T1矩阵游戏 题解

题意

给定a,b,c,d和一个N\(\times\)M的矩阵,其中\(f[1][1]=1,f[i][j]=af[i][j-1]+b\)
除了第一行以外,\(f[i][1]=c\times f[i-1][m]+d\)
求\(f[n][m]\)的值 a,b,c,d<\(10^9\) n,m<\(10^{1000000}\)

思路

不太熟悉矩阵乘法,但看到一递推式,我死去的关于数列的记忆就开始攻击我,所以可以考虑通过推式子来做这道题

具体实现

引入

首先回忆汉诺塔问题中\(a_{n}=2\times a_{n-1}+1\),通过在等式两边各加\(1\),我们可以得到\(\frac{a_{n}+1}{a_{n-1}+1}=2\)
从而构造出了公比为\(2\)的等比数列{\(\frac{a_{n}+1}{a_{n-1}+1}\)},首项\(a_{1}+1=2\)
再简单的化简一下就可以得到\(a_{n}=2^n-1\)
那么如何推广到这道题上面来呢?

解决办法

第一步

我们考虑递推式为\(f_{m}=a\times f_{m-1}+b\)的一个数列如何推导通项公式:
利用待定系数设原式为\(f_{m}+\lambda=a\times(f_{m-1}+\lambda)\),再拆开得到\(f_{m}=a\times f_{m-1}+\lambda\times(a-1)\)
对比上下两个式子不难得到$$b=\lambda\times (a-1)\iff\lambda=\frac{b}{a-1}$$
同时我们注意到\(a=1\)的时候是没有意义的,所以还要单独讨论。
然后就能得出\(f_{m}=(f_{1}+\lambda)\times a^{m-1}-\lambda\)辣

第二步

考虑行与行之间的关系\(f[i][1]=c\times f[i-1][m]\),其中\(f[i-1][m]\)我们已经解出,那么带入可得

\[f[i][1]=c\times [a^{m-1}\times(f[i-1][1]+\lambda)-\lambda]+d \]

看到这种形式熟悉吗,没错,只不过是第一步中推导多了一大坨一点点而已,那么我们如法炮制最终可以得到

\[f[n][1]=(c\times a^{m-1})^{n-1}\times f[1][1]+(c\times a^{m-1})^{n-1}\times\alpha-\theta \]

\[\theta=\frac{c\times a^{m-1}\times \lambda-c\times\lambda+d}{c\times a^{m-1}-1} \]

聪明的你可能已经发现了,\(a=1\)的时候\(c\)是不能为\(1\)的这也是一种需要讨论的情况
这时候要得到\(f[n][m]\)我们只需要再借用一次第一步中的公式,\(令TmpAns=f[n][1]\)
那么\(f[n][m]=(TmpAns+\lambda)\times a^{m-1}-\lambda\)
\(\longrightarrow f[n][m]=f[1][1]\times a^{n(m-1)}+a^{n(m-1)}c^{n-1}\theta+a^{m-1}(\lambda-\theta)-\lambda\)

收尾

讨论\(a\)、\(c\)各自的取值范围
关于数据范围

\(n\)、\(m\)的范围大到连__int128也无能为力了,怎么办呢?快去西天请欧拉佛祖
这时候就要用到拓展欧拉定理一边读入一边取模了

\[a^n\equiv a^{n \mod \phi(p)}(\mod x) \]

小细节

涉及到的除法都要使用逆元,用费马小和拓展欧几里得算都行

第一次用LaTeX,写了两个多小时,看来是太菜了

标签:frac,得到,矩阵,times,NOI2013,theta,D1T1,lambda
来源: https://www.cnblogs.com/Hanggoash/p/16692408.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有