首页 > 其他分享 >矩阵模板

矩阵模板

时间:2023-12-05 15:22:29浏览次数:31  
标签:Matrix int 矩阵 long i64 using 模板

#include <bits/stdc++.h>
using namespace std;


struct Matrix {
	using i64 = long long;
	i64 N;
	vector<vector<i64>> A;
	Matrix() { N = 0;}
	Matrix(int n) {
		N = n;
		A.resize(N + 1);
		for (int i = 0; i <= N; i ++)
			A[i].resize(N + 1, 0);
	}
	Matrix operator*(const Matrix &b) const {
		Matrix res(b.N);

		for (int i = 1; i <= b.N; ++i)
			for (int j = 1; j <= b.N; ++j)
				for (int k = 1; k <= b.N; ++k)
					res.A[i][j] = (res.A[i][j] + A[i][k] * b.A[k][j]);
		return res;
	}
	Matrix qpow(i64 k) {
		Matrix res(N);

		//斐波那契数列初始化
		//res.A[1][1] = res.A[1][2] = 1;
		//A[1][1] = A[1][2] = A[2][1] = 1;

		//单位矩阵
		for (int i = 0; i <= N; i ++)
			res.A[i][i] = 1;

		while (k) {
			if (k & 1) res = res * (*this);
			(*this) = (*this) * (*this);
			k >>= 1;
		}
		return res;
	}
};

标签:Matrix,int,矩阵,long,i64,using,模板
From: https://www.cnblogs.com/Kescholar/p/17877365.html

相关文章

  • 小谈设计模式(11)—模板方法模式
    (小谈设计模式(11)—模板方法模式)主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。模板方法模式这是一种行为型设计模式,用于定义算法的框架,将算法的具体实现延迟到子类中。角......
  • 【矩阵论】求和空间与交空间的基和维数
    步骤:①把两个空间的基拼成一个矩阵②把该矩阵化为行最简③从行最简矩阵中读出极大线性无关组,此为和空间的基,极大线性无关组的向量个数为和空间的维数④设交空间的向量为x,x能同时被两个空间的基线性表示,列出方程组,解,基础解系即为交空间的基,基础解系个数为交空间维数【例】......
  • 3、利用初始化好的虚拟机当作模板,用于克隆
    摘自:https://blog.51cto.com/mfc001/6408226 利用初始化好的虚拟机当作模板,用于克隆第一步:先拷贝个虚拟机当作模板[root@ubuntimages]#virt-clone-orocky8-f/var/lib/libvirt/images/rocky8-template.qcow2-nrocky8-templateAllocating'rocky8-templat......
  • 4、虚拟机单机、集群的克隆、删除脚本(以初始化好的虚拟机为模板)
    摘自:https://blog.51cto.com/mfc001/6408229 虚拟机克隆、删除脚本[root@ubunt~]#catclone.sh#!/bin/bash##./etc/init.d/functions(如果是ubuntu,注释此行)Red="\e[1;31m"Purple="\e[1;35m"Green="\e[1;32m"Blue="\e[1;3......
  • 【矩阵论】基变换与坐标变换
    理论①从基B1变换到B2,变换矩阵记为P,则有\[B_1P=B_2\]②某向量在基B1下的坐标为x,B2下的坐标为y,则有\[B_1x=B_2y\]③由上面两式子可知\[\begin{align}&B_1x=B_2y=B_1Py\nonumber\\&\Rightarrowx=Py\nonumber\end{align}\]上式即为坐标变换公式【例1】已知......
  • 稀疏矩阵压缩
    c代码#include<stdio.h>#defineMaxSize128#defineM6#defineN7#defineERROR0#defineOK1typedefintStatus;typedefstruct{inti;//行号intj;//列号intv;//元素值}TupNode;......
  • Django学习(二) 之 模板的使用
    写在前面昨晚应该是睡的最好一天吧,最近一个月睡眠好差,睡不着不说,而且半夜总醒,搞的我第二天就会超没精神。昨天下午去姐姐家,我刚进屋,小外甥直接就问我说:老舅,你都很长时间没来啦,**(前女友)哪去了,我们都好久没出溜溜了!我顿了下说,她不喜欢我们了,等以后天暖和,我们再去溜溜。......
  • 关于kmp模板
    那个求p串的next数组这个版本是下标从1开始的字符串,如果从0开始的话,可以在前面加空字符,然后p.size或者s.size的地方-1即可。nex[1]=0    for(inti=2,j=0;i<=p.size();i++){if(j&&p[i]!=p[j+1])j=nex[j];if(p[i]==p[j+1])j++;nex[i]=j;} kmp函数......
  • C++_线程池代码看C++类-模板-标准库
    C++线程池线程池的组成部分:线程池管理器(ThreadPoolManager):用于创建并管理线程池工作线程(WorkThread):线程池中线程任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。任务队列:用于存放没有处理的任务。提供一种缓冲机制。 通过新......
  • 六. 函数模板和类模板
    文章参考:《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)_白鳯的博客-CSDN博客1.引入在编写函数和类时,有时会出现这样的情况,具体实现方式完全一致,但因此参数类型、返回值类型、数据类型等因素的不同,导致不得不写多个函数或者类(因为C++是强类型语言,无法隐式转换,且有些......