矩阵学习摘记,欢迎指正

矩阵乘法学习摘记

​ ——JZYshuraK 18.4.8

http://www.matrix67.com/blog/archives/276

例题1

​ 为什么一定要将本来只有两维的点设为一个\(1\cdot 3​\)矩阵,原因在于,我们在处理所有操作时,必须使得每一个操作矩阵都是正方形(显然),然后加法矩阵需要有一维使得和坐标的另一维乘积为0,而且必须点当中有一维为1,才能实现加法操作。然后,所有矩阵必须都是等大的,进而,所有本可以2*2的矩阵被强行扩大到3*3。

例题2

​ 虽然矩阵不是数,但是它可以相乘。快速幂的本质其实是指数的二进制拆分,对于相乘元素只要可以相乘即可。快速幂中所有元素都是相等的,不存在什么交换律结合律什么的。

例题3

​ 其实并不是什么二分,知道了元素个数可以O(1)知道中间元素,如果是就是就把它单独拎出来算掉,然后递归即可。
考试的时候碰见了一道题,范围是\(10^18\).
有两种做法
我的做法是对于任意的n,将需要单独拎出来的下标存在一个数组里,然后预处理出来。直接处理显然会T。我们发现,每一个数a[i+1]和a[i]的关系很简单,无非就是2,2+1,*2-1。除了-1我们都可以直接×2,然后再扯。对于-1的情况,我在开始dp的时候就弄一个Shadow矩阵,是\(T^{a[i]-1}\)。这样的话,我无论下一个数是不是-1的情况,我都让这个Shadow矩阵一直跟着我们dp的指针。这样的话,我们就处理掉了-1的情况,时间复杂度变成了log
题解的做法是在快速幂的时候直接得到答案。做法是这样的:首先,为什么快速幂能恰好将n算完整?因为我们相当于将n二进制拆分,之后对于是1的情况单独处理。而这里,我们在快速幂的时候顺便将sum矩阵跟着求出来即可。-----------------2018.7.7

例题4

​ 其实这道题可以用Matrix67的方法,最本质的原因是这是置换。这意味着什么?意味着我的操作矩阵和原序列是毫无关系的qwq,所以可以矩阵乘法加快速幂,即可。

例题5

​ 细菌和上一题类似,操作矩阵和原来培养皿里面呆着多少小东西并没有多大关系。所以我把原序列扔进数组,然后撇到一边。可以在线处理(离线MLE)矩阵,然后快速幂即可。最后将操作答案矩阵和原序列相乘,即可。

例题6

​ 求Fibonacci第n项,n是\(2^{31}-1\) (这反倒是我矩乘第一题)。这种问题可以得以解决关键在于这个递推法则是固定的,而且和当前元素下标无关(如果和下标有关,那么操作矩阵中必须存在变量,这样就不符合快速幂的本质(交换律))。

例题7

​ 显然,通过这道题,我们可以大致的猜想到:任意的\(a_n=\sum\limits_{i=n-sum+1}^{n-1} H_i\cdot a_i\) ,(H是固定系数,sum是固定递推项数),都可以通过矩阵快速幂解决。

例题8

​ JLOI2018 D2 T1裸题

​ 就是说构造邻接矩阵时候,我们矩阵中i行j列的元素,在第k个答案矩阵上,表示从i到j花费k步的方案数。然后。然后,将当前答案矩阵乘上原来的邻接矩阵,如果能对当前点有更新,当且仅当两点之间连边。

​ 即:\(a_{i,j,k}=\sum\limits_{mid=1}^{n}a_{i,mid,k-1}\cdot c_{mid,j}\) 其中,\(a_{i,j,k}\) 表示从i到j用k步的方案数,mid可以看做枚举到达j的上一个点,\(c_{i,j}\) 表示两点是否连通。这恰好枚举了所有情况,其中\(c_{i,i}\) 为0。

​ 之后,求邻接矩阵的k次快速幂,询问的话,输出答案即可。

例题9

​ 额外链接http://blog.sina.com.cn/s/blog_77dc9e08010176nf.html

​ 和例题8类似,只不过这题的邻接矩阵的建立需要花一份儿功夫,建立了所谓的邻接矩阵之后,快速幂即可。

例题10

​ 特别地,我们对于两个病毒片段的转移构造邻接矩阵(详情说的很清楚)。然后同理,矩乘快速幂即可。

转载于:https://www.cnblogs.com/ShuraK/p/8747419.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装与配置-以前的某个程序安装已在安装计算机上创建挂起的文件操作......

今日在Windows XP SP2的计算机上,安装SQL Server 2000 Standard Edition,安装不上,错误信息如下: 文字描述为: 以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。 解决方法…

拦截器和过滤器的区别

一、拦截器基于 java 的反射机制,过滤器是基于函数回调的。 二、过滤器依赖于 servlet 容器,拦截器不依赖 servlet 容器。 三、拦截器只对 Action 起作用, 过滤器对所有请求都起左右 四、拦截器可以访问 Action 的上下文 和 值栈里面的对象&a…

php mail ld preload,读《利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令》有感...

今天看来一篇文章:http://cb.drops.wiki/wooyun/drops/tips-16054.html复现了一下,感觉有点坑我把复现的过程,结果和遇到问题在这里总结一下我的实验环境是centos7 php 5.4首先按照要求编译一个so1.创建一个hehe.c#include #include #include…

带预览图的js切换效果!

效果图: js代码: var isIE (document.all) ? true : false;var $ function (id) {return "string" typeof id ? document.getElementById(id) : id; };var Class {create: function() {return function() { this.initialize.apply(this,…

[BZOJ4033][HAOI2015]树上染色(树形DP)

4033: [HAOI2015]树上染色 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2437 Solved: 1034[Submit][Status][Discuss]Description 有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色&a…

php数组添加省会城市,【JSON数据】中国各省份省会城市经纬度 JSON

[{ name: 北京, value: [ 116.3979471, 39.9081726, 78 ] },{ name: 上海, value: [ 121.4692688, 31.2381763, 75 ] },{ name: 天津, value: [ 117.2523808, 39.1038561, 95 ] },{ name: 重庆, value: [ 106.548425, 29.5549144, 78 ] },{ name: 河北, value: [ 114.4897766, …

CentOS 6.0安装JDK7

CentOS 6.0安装JDK7 - Sea Wang - 博客园CentOS 6.0安装JDK7话说在CentOS下安装JDK7(下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html),同事直接告诉我说双击jdk-7-linux-…

Python成长之路【第七篇】:Python基础之装饰器

一、什么是装饰器 装饰:装饰既修饰,意指为其他函数添加新功能 器:器既函数 装饰器定义:本质就是函数,功能是为其他函数添加新功能 二、装饰器需要遵循的原则 1、不能修改装饰器的源代码(开放封闭原则&#…

php中改变函数路由,php – 如何修改codeigniter中的路由

我终于找到了我想要的东西.以下是我的代码在routes.php中的样子./* Custom Routes. */// Store Normal Pages.$route[home/(:any)] "base/home/$1";$route[about/(:any)] "base/about/$1";$route[services/(:any)] "base/services/$1";$route…

主域控宕机无法恢复后,如何配置辅助域控继续工作

情况如下: 系统基础结构如下:一个主域控,一个辅助域控且都安装AD与DNS集成区。 如果: 主域控宕机且无法恢复,请问辅助域应做些什么才能替代主域控继续工作? 第一步:在辅助域控上清除主域控AD数…

$.get、$.post 和 $().load()

一、$.get() 用于get方式进行异步请求。 结构: $.get( url, data, callback, type); url - 请求路径(string); data - 发送至服务器的键值对数据 (object); callback - 状态为success时的回调函数&a…

sql数据库与oracle数据库同步,[sql数据库同步]Oracle与SQL Server如何实现表数据同步...

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件数据库的Oracle版本为10.2,并安装在Linux系统上。数据库SQL Server的版本是SQL 2005,已安装在Windows XP系统上。现在我们需要做的是在两个数据库表之间同步数据。现在,最…

零食嘴----美食领域的美丽说

零食嘴美食分享社区首页 阿里巴巴参谋长曾鸣曾说过:“淘宝等美丽说模式整整等了两年。不仅在女性领域,阿里希望在各个维度都出现‘美丽说’。” 零食嘴就是美食领域美丽说。 所谓的美丽说模式,是指社会化电子商务分享的模式,在一个…

Symfony2

--开放性 --可扩展性 --持续升级性 --有商业背景和支持性 --被广泛使用性 --引领PHP领域最佳实践性 ----官网(查询功能使用) 定义类 类的属性和方法统称为类成员;类的实例化就是通过类的定义创建一个类的对象; 类定义》多个类得实…

oracle导出数据dummy,oracle导出表结构1

oracle导出表结构1.exp/imp工具在cmd中输入 exp username/password连接串回车,在进入如下时,输入no,就ok了导出表数据(yes/no):yes> no;补充----------------exp/imp工具;带参数:rowsy ——带…

Tree.Panel各项属性

1、Ext.tree.TreePanel主要配置项:root:树的根节点。rootVisible:是否显示根节点,默认为true。useArrows:是否在树中使用Vista样式箭头,默认为false。lines:是否显示树线,默认为true…

测试用例设计方法

测试用例设计方法 本篇由本人整理黑盒、白盒、接口测试一系列用例设计方法。 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。 (一)等价类划分法 定义:等…

oracle 在数据库打开状态下进行备份时_下面描述不正确的是,Oracle数据库DBA面试题50道及答案_经典...

Oracle数据库DBA面试题50道及答案_经典1. 解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的…

Disk Quota磁盘配额

Disk Quota :磁盘配额 限制某个用户或某个组,对某个分区(生效级别是文件系统)的使用能力;由于早期的Unix系统是多用户、多任务的环境,所以一台主机的磁盘会被多个用户使用,某个用户占用大量的磁盘空间会影响其他用户对…

linux进度条脚本,Linux下简易进度条的实现代码

在生活中,进度条是很常见的,那么,进度条是如何实现的呢?首先,进度条的动态是利用人眼视觉暂留效果的。实际上是如下过程:先输出:[ ]表示进度是1%,刷新之后再输出:[ …