[矩阵乘法] PKU3233 Matrix Power Series

[ 矩 阵 乘 法 ] M a t r i x P o w e r S e r i e s [矩阵乘法]Matrix Power Series []MatrixPowerSeries

Description

Given a n × n n × n n×n matrix A A A and a positive integer k k k, find the sum S = A + A 2 + A 3 + . . . + A k S = A + A^2 + A^3 + ... + A^k S=A+A2+A3+...+Ak.

Input

The input contains exactly one test case. The first line of input contains three positive integers n n n ( n n n 30 30 30), k k k ( k k k 1 0 9 10^9 109) and m m m ( m m m < 1 0 4 10^4 104). Then follow n lines each containing n n n nonnegative integers below 32 , 768 32,768 32,768, giving A A A’s elements in row-major order.

Output

Output the elements of S S S modulo m in the same way as A A A is given.

Sample Input

2 2 4
0 1
1 1

Sample Output

1 2
2 3


题目解析

为了降低时间复杂度,考虑矩阵乘法

然后可以构造出一个 2 r 2r 2r阶的矩阵 T T T
∣ A E O E ∣ \begin{vmatrix} A & E \\ O & E \\ \end{vmatrix} AOEE

其中:
A A A为输入的矩阵( A A A r r r阶的矩阵)
O O O为全零矩阵 ( O O O是值全为 0 0 0 r r r阶矩阵)
E E E为对角线矩阵( E E E是除了对角线为 1 1 1,其他的都为 0 0 0的矩阵)

然后可以得出: ∣ S [ n − 1 ] , A n ∣ = ∣ S [ n − 2 ] , A n − 1 ∣ ∗ T |S[n-1],A^n| = |S[n-2],A^{n-1}| * T S[n1],An=S[n2],An1T

然后通过将矩阵乘法的结合律通过快速幂来计算出 T n T^n Tn再可 A ∗ T n A*T^n ATn来求得答案


关于 T T T矩阵的实现

//全零矩阵的实现
//matrix 是已经定义的结构体,n和m是表示矩阵的长和宽,t是矩阵的值
matrix O (int re)
{
	matrix c;
	c.n = c.m = re;
	for (int i = 1; i <= re; ++ i)
	 for (int j = 1; j <= re; ++ j)
	  c.t[i][j] = 0;
	return c;
}
//对角线矩阵的实现
//matrix 是已经定义的结构体,n和m是表示矩阵的长和宽,t是矩阵的值,O函数为前文定义的全零矩阵
matrix E (int re)
{
	matrix c;
	c.n = c.m = re;
	c = O (re);
	for (int i = 1; i <= re; ++ i)
	 c.t[i][i] = 1;
	return a;	
}
//关于矩阵的合并。n,m,t,O(),E()前文已述,T1就是前文提到的T矩阵,re为前文提到的r,a是前文提到的A
matrix hb (int re)
{
	t1.n = t1.m = re * 2;
	for (int i = 1; i <= re; ++ i)
	 for (int j = 1; j <= re; ++ j)
	  t1.t[i][j] = a.t[i][j];
	matrix er = E (re);
	for (int i = 1; i <= re; ++ i)
	 for (int j = re + 1; j <= re * 2; ++ j)
	  t1.t[i][j] = er.t[i][j];
	for (int i = re + 1; i <= re * 2; ++ i)
	 for (int j = re + 1; j <= re * 2; ++ j)
	  t1.t[i][j] = er.t[i][j];
	for (int i = re + 1; i <= re * 2; ++ i)
	 for (int j = 1; j <= re; ++ j)
	  t1.t[i][j] = 0;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: PKU VehicleID数据集是由北京大学智能交通与多媒体实验室提供的一个用于车辆识别的图像数据库。该数据集包含了车辆在不同环境、不同拍摄条件下的图像,旨在用于车辆相关研究的数据训练和测试。 PKU VehicleID数据集收集了超过8万辆车的图像,涵盖了2000多个车型和16000多个车例。这些图像是在不同的拍摄条件下捕捉到的,包括不同的光照、天气、角度和距离。这使得该数据集在车辆识别和相关研究领域具有较高的多样性和可用性。 PKU VehicleID数据集不仅提供了车辆图像,还包含了车辆的标注信息,如车辆类型、颜色、品牌等。这些标注信息为研究者提供了更多的可用数据,可以辅助他们进行车辆特征识别、车辆分类等相关研究。 PKU VehicleID数据集可以广泛应用于车辆识别、车辆检测、交通监控等领域的研究和实践中。通过利用该数据集,研究者可以进行车辆模型的建立与识别、车辆行为的分析与预测等工作,从而为智能交通和城市管理提供更好的技术支持和解决方案。 综上所述,PKU VehicleID数据集是一个丰富的车辆图像数据库,它提供了大量的车辆图像和标注信息,为车辆识别和相关研究领域的研究者提供了重要的资源和工具。通过该数据集的应用,我们可以更好地理解和研究车辆特征识别、车辆分类等问题,为智能交通和城市管理带来更多的创新和进步。 ### 回答2: PKU VehicleID数据集是由北京大学人工智能与自动化研究所于2016年发布的一个车辆检测和识别的数据集。这个数据集主要包含了来自北京市道路监控系统的车辆图像和相关的车辆属性信息。 PKU VehicleID数据集的特点主要有以下几点。首先,该数据集包含了非常大量的车辆图像,总计约50万张,涵盖了丰富的场景和车型样本。其次,这些图像都是以野外真实道路监控视频截取得到的,具有较高的真实性和复杂性。此外,数据集中的每一辆车都被分配了一个唯一的ID号码,用于标识和跟踪车辆。最后,PKU VehicleID数据集还提供了诸如车辆类型、颜色、品牌等属性信息,方便进行车辆属性识别和分类任务。 PKU VehicleID数据集在车辆检测、跟踪和识别领域有着广泛的应用价值。通过利用这个数据集,可以开展车辆检测算法的研究和性能评估。同时,也可以进行车辆属性识别、车型分类等应用任务的研究。这个数据集的发布对于提升车辆智能监控和交通管理系统的性能具有重要意义。此外,PKU VehicleID数据集还可以为自动驾驶、交通安全和交通流量分析等领域的研究提供有价值的实验数据基础。总之,PKU VehicleID数据集是一个丰富而有用的资源,为车辆相关研究提供了有力的支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值