P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另外一个公交站往往要换几次车,例如从公交站A到公交站D,你就至少需要换3次车. Tiger的方向感极其糟糕,我们知道从公交站A到公交E只需要换4次车就可以到达,可是tiger却总共换了n次车,注意tiger一旦到达公交站E,他不会愚蠢到再去换车.现在希望你计算一下tiger有多少种可能的乘车方案. 题…
P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另外一个公交站往往要换几次车,例如从公交站A到公交站D,你就至少需要换3次车. Tiger的方向感极其糟糕,我们知道从公交站A到公交E只需要换4次车就可以到达,可是tiger却总共换了n次车,注意tiger一旦到达公交站E,他不会愚蠢到再去换车.现在希望你计算一下tiger有多少种可能的乘车方案. 题…
题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 输入输出格式 输入格式: 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素 输出格式: 输出A^k 共n行,每行n个数,第i行第j个数表示矩阵第i行第j列的元素,每个元素模10^9+7 输入输出样例 输入样例#1: 复制 2 1 1 1 1 1 输出样例#1: 复制 1 1 1 1 说明 n<=100, k<=10^12, |矩阵元素|<=1000 算法:矩阵快速幂 ----------…
题目戳这里 一句话题意 一个大小为8的环,求从1到5正好n步的方案数(途中不能经过5). Solution 巨说这个题目很水 应该是比较容易的DP,直接从把左边和右边的方案数加起来即可,但是有几个需要注意的地方: 1.因为n有1e7所以需要滚动数组. 2.因为不能经过5,所以4只能从3转移,6只能从7转移. 3.记得取模. Coding #include<bits/stdc++.h> using namespace std; int f[2][9]; const int P=1e3; int…
God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him that some sequence of eating will make them poisonous. Every hour, God Water will eat one kind of food among meat, fish and chocolate. If there are 3 c…
洛谷 不知道大家做没做过传球游戏,这一题和传球游戏的转移方程几乎一样. 令\(A\)为\(1\)点,\(E\)为\(5\)点,那么\(f[i][j]\)代表第i步走到j的方案数. \[f[i][j]=f[i−1][j+1]+f[i−1][j−1]\] 因为题中给的是一个环,所以有几种情况. \[if(j==8)~f[i][j]=f[i−1][1]+f[i−1][7]\] \[if(j==1)~f[i][j]=f[i−1][8]+f[i−1][2]\] 还有,因为题中说,到了\(E\)点,就不会再…
洛咕原题 dp->矩阵乘法 首先我们可以得出一个状态转移方程 f[i][j]=f[i-1][j-1]+f[i-1][j+1] 蓝后发现,我们可以把这转化为一个8*8的转移矩阵 然后跑一遍矩阵快速幂即可 #include<iostream> #include<cstdio> #include<cstring> using namespace std; struct matrix{ ][]; matrix(){memset(a,,sizeof(a));} matrix…
题目:给定n*n的矩阵A,求A^k. 解法:利用矩阵乘法的定义和快速幂解答.注意用负数,但是数据太弱没有卡到我......(P.S.不要在 typedef long long  LL; 前使用 LL......━━( ̄ー ̄*|||━━) P.S.在multi函数里,若将所有相乘的和先加起来不会爆 long long ,那就最后再模会快不少. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #inc…
P3390 [模板]矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 矩阵A的大小为n×m,B的大小为n×k,设C=A×B 则\(C_{i,j}=\sum\limits_{k=1}^{n}A_{i,p}×B_{p,j}\) 矩阵乘满足结合律:(AB)C=A(BC) 有一种特殊的矩阵:单位矩阵,它从左上角到右下角的对角线上的元素均为1,除此以外全都为0.它在矩阵乘中相当于数乘中的1,即任何矩阵乘它都等于本身. code: #include <iostream> #include <cst…
思路: 这个 a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1] (x>3) 可以想成: [a(n) ] [1 0 1] [a(n-1)   ] [a(n-1) ] =   [1 0 0] * [a(n-2)  ] [a(n-2) ]  [0 1 0] [a(n-3)   ] 然后就是利用矩阵快速幂去算中间那个矩阵的n次结果 #include <iostream> #include <cstdio> #include <cstring> usi…