数论-矩阵快速幂
lab104_yifan
这个作者很懒,什么都没留下…
展开
-
UVA 10689 - Yet another Number Sequence(矩阵快速幂)
UVA 10689 - Yet another Number Sequence题目链接题意:斐波那契给前两项,求出第n项,并保留m位思路:挺裸的矩阵快速幂,就是取模的值是10^m代码:#include #include const int mod[5] = {0, 10, 100, 1000, 10000};int t, a, b, n, m;s原创 2014-07-20 23:26:30 · 1361 阅读 · 0 评论 -
UVA 10655 - Contemplation! Algebra(矩阵快速幂)
UVA 10655 - Contemplation! Algebra题目链接题意:给定p, q, n代表p=a+b,q=ab求an+bn思路:矩阵快速幂,公式变换一下得到(an+bn)(a+b)=an+1+bn+1+ab(an−1+bn−1),移项一下得到an+1+bn+1=(an+bn)p−q(an−1+bn−1)这样就可以用矩阵快速幂求解了代码:原创 2014-07-20 16:38:57 · 1182 阅读 · 0 评论 -
UVA 11149 - Power of Matrix(矩阵倍增)
UVA 11149 - Power of Matrix题目链接题意:给定一个n*n的矩阵A和k,求∑kiAi思路:利用倍增去搞,∑kiAi=(1+Ak/2)∑k/2iAi,不断二分即可代码:#include #include const int N = 45;int n, k;struct mat { int v[N][N]; mat()原创 2014-07-20 18:04:37 · 1821 阅读 · 0 评论 -
UVA 10870 - Recurrences(矩阵快速幂)
UVA 10870 - Recurrences题目链接题意:f(n) = a1 f(n - 1) + a2 f(n - 2) + a3 f(n - 3) + ... + ad f(n - d), for n > d.已知前d项求第n项思路:矩阵快速幂,对应矩阵为|a1 a2 a3 ... ad||1 0 0 ... 0 0 0||0 1 0 ... 0 0原创 2014-07-20 11:52:28 · 1133 阅读 · 0 评论 -
UVA 1386 - Cellular Automaton(循环矩阵)
UVA 1386 - Cellular Automaton题目链接题意:给定一个n格的环,现在有个距离d,每次变化把环和他周围距离d以内的格子相加,结果mod m,问经过k次变换之后,环上的各个数字思路:矩阵很好想,每个位置对应周围几个位置为1,其余位置为0,但是这个矩阵有500,有点大,直接n^3去求矩阵不太合适,然后观察发现这个矩阵是个循环矩阵,循环矩阵相乘的话,只需要原创 2014-07-20 15:07:56 · 1705 阅读 · 0 评论 -
UVA 11551 - Experienced Endeavour(矩阵快速幂)
UVA 11551 - Experienced Endeavour题目链接题意:给定一列数,每个数对应一个变换,变换为原先数列一些位置相加起来的和,问r次变换后的序列是多少思路:矩阵快速幂,要加的位置值为1,其余位置为0构造出矩阵,进行快速幂即可代码:#include #include const int N = 55;int t, n, r, a原创 2014-07-22 08:32:23 · 1528 阅读 · 0 评论 -
HDU 4965 Fast Matrix Calculation(矩阵快速幂)
HDU 4965 Fast Matrix Calculation题目链接矩阵相乘为AxBxAxB...乘nn次,可以变成Ax(BxAxBxA...)xB,中间乘nn - 1次,这样中间的矩阵一个只有6x6,就可以用矩阵快速幂搞了代码:#include #include const int N = 1005;const int M = 10;int n,原创 2014-08-19 22:48:28 · 1313 阅读 · 0 评论 -
UVA 11651 - Krypton Number System(DP+矩阵快速幂)
UVA 11651 - Krypton Number System题目链接题意:给一个进制base,一个分数score求该进制下,有多少数满足一下条件:1、没有连续数字2、没有前导零3、分数为score,分数的计算方式为相邻数字的平方差的和思路:先从dp入手,dp[i][j]表示组成i,最后一个数字为j的种数,然后进行状态转移,推出前面一步能构成的状态,也就是到原创 2014-08-10 10:51:56 · 2080 阅读 · 0 评论 -
HDU 5015 233 Matrix(西安网络赛I题)
HDU 5015 233 Matrix题目链接思路:矩阵快速幂,观察没一列,第一个和为左边加最上面,第二个可以拆为左边2个加最上面,第三个可以拆为为左边3个加最上面,这样其实只要把每一列和每一列右边那列的233构造出一个矩阵,进行矩阵快速幂即可代码:#include #include typedef long long ll;const int N = 15原创 2014-09-15 09:21:19 · 1779 阅读 · 0 评论