P3390 【模板】矩阵快速幂

题目背景

矩阵快速幂

题目描述

给定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 算法:矩阵快速幂


如题,矩阵快速幂。

已知,矩阵乘法:

第一个矩阵:

5 6 7

8 9 4

第二个矩阵:

2 3 7

2 4 8

8 3 6

相乘得:

5*2+6*2+7*8  5*3+6*4+7*3  5*7+6*8+7*6

8*2+9*2+4*8  8*3+9*4+4*3  8*7+9*8+4*6

即:

78  60  125

36  72  152

再利用快速幂可得答案。

 最后附上经我们喻队(

PIPIBoss

)指点的代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#define ll long long
using namespace std;
ll read()
{ll x=0,y=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')y=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*y;
}
int n;
ll k;
struct ju
{ll a[145][145];inline ju operator *(const ju &b)const//inline用来定义内联函数,即在类中用的函数,可以加快速度。{                      //该函数的作用是来重载*号运算符。
        ju tmp;for(int i=1; i<=n; i++)for(int j=1; j<=n; j++){tmp.a[i][j]=0;for(int k=1; k<=n; k++){tmp.a[i][j]+=a[i][k]*b.a[k][j];tmp.a[i][j]%=1000000007;}}return tmp;}
}ans;
ju pow(ju a,ll k)
{ju tmp=a;k--;while(k){if(k&1)tmp=tmp*a;a=a*a;k>>=1;}return tmp;
}
int main()
{scanf("%d%lld",&n,&k);for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)ans.a[i][j]=read();ans=pow(ans,k);for(int i=1; i<=n; i++){for(int j=1; j<=n; j++)printf("%lld ",ans.a[i][j]);putchar('\n');}return 0;
}//    FOR C.H.

 

最后的最后,别忘了加上头文件,我一开始就是因为没加头文件错了几次。

转载于:https://www.cnblogs.com/gshdyjz/p/7134261.html

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

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

相关文章

c#精彩编程200例百度云_永安市教育局被授予“人工智能编程教育试验区”

11月28日&#xff0c;“第二届人工智能与机器人教育大会青少年人工智能与编程教育主题论坛”在厦门召开。永安市教育局被中国教育发展战略学会人工智能与机器人教育专委会授予“人工智能编程教育试验区”牌匾&#xff0c;巴溪湾小学、西门小学、三中、一中附属学校、实验小学等…

python中+=和=+的区别

本文原创&#xff0c;版权属作者个人所有&#xff0c;如需转载请联系作者本人。Q&微&#xff1a;155122733 -------------------------------------------------------------------------------------------------------- a1 代表在原值上更改 aa1相当于先定义一个变量&…

Spring Data JPA和分页

让我们从支持分页的经典JPA方法开始。 考虑一个简单的域类–一个具有名字&#xff0c;姓氏的“成员”。 为了支持在成员列表上进行分页&#xff0c;JPA方法是支持一种查找器&#xff0c;该查找器将获取第一个结果&#xff08;firstResult&#xff09;的偏移量和要检索的结果&am…

南阳理工 题目63 小猴子下落

小猴子下落 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB 难度&#xff1a;3 描述 有一颗二叉树&#xff0c;最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3&#xff0c;&#xff0c;2的D次方减1。在结点1处放一个小猴子&#…

vue 方法获取返回值_vue.js - vuex异步提交,怎么获取返回数据

问 题 做登录页面时,在vuex中的action异步提交后获取的数据在mutations中存储在state里面,但是总感觉不对,没有返回数据,我前端页面怎么获取数据,用mapgetter获取不到数据,是不是他不是实时更新的,而且输出的mapgetter输出的数据还在action的前面。下面是我前端部分代码…

Windows环境下安装、卸载Apache

安装Apache 服务 打开 Apcahe的目录 &#xff0c;打开bin目录&#xff0c; 如&#xff1a;E:\wamp\Apache24\bin &#xff0c;打开目录&#xff0c;Shift键 鼠标右键 &#xff0c; 点击 在此处打开命令窗口或者W快捷键直接到此处&#xff0c; 也可以Window键r&#xff0c;输入…

css清浮动

我们在平常做项目的时候&#xff0c;float这个css属性经常会用到。元素浮动会让元素脱离文档流&#xff0c;从而不能撑开父级的内容。今天我将展示常见的清除浮动的方法。 什么是浮动 浮动元素脱离文档流并且向左或者向右移动&#xff0c;直到浮动元素的边缘碰到父级框或者另…

小心缓存管理器

如果使用spring和JPA&#xff0c;则很有可能利用ehcache&#xff08;或其他缓存提供程序&#xff09;。 您可以在两种不同的情况下进行此操作&#xff1a;JPA 2级缓存和spring方法缓存。 在配置应用程序时&#xff0c;通常会设置JPA提供程序的二级缓存提供程序&#xff08;在我…

DirectX11 学习笔记7 - 支持自由移动的摄像机

如今将又一次制定一个camera摄像机。能够自由移动。比方前进 后退&#xff0c;上游 下潜。 各个方向渲染之类的。 首先设置按键。 这个时候须要在 XWindow.h 里面 bool XWindow::frame() {//推断是否按下ESC键if(x_input->isKeyDown(VK_ESCAPE))return false;//假设A,S,D,W,…

腾讯吃鸡 android,腾讯吃鸡手游《光荣使命》正式上线:安卓/iOS不限号测试

IT之家11月29日消息 今天下午&#xff0c;腾讯首款百人战术竞技手游《光荣使命》在安卓、iOS双平台正式上线&#xff0c;开启全面测试。(官网下载&#xff1a;点此链接&#xff0c;双平台已开放下载。)该游戏采用第三人称射击视角&#xff0c;玩家化身参与“使命行动”军事演习…

lazada铺货模式的选品_lazada小白的运营难点→铺货与精细化运营的优劣势详解

lazada是铺货还是精细化经营第一种铺货铺货作为平台早期都是比较受欢迎的&#xff0c;平台的蛮荒期&#xff0c;成长期当中&#xff0c;铺货的商家是非常受欢迎的&#xff0c;因为平台需要更多SKU产品&#xff0c;去吸引买家&#xff0c;铺货这个时候是最好的也是能最快的成长起…

ife 零基础学院 day 2

第二天&#xff1a;给自己做一个在线简历吧 最后的验证&#xff0c;提出了几个问题&#xff0c;尝试解答一下 HTML是什么&#xff0c;HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Langua…

excel数据生成sql insert语句

excel数据生成sql insert语句 excel表格中有A、B、C三列数据&#xff0c;希望导入到数据库users表中&#xff0c;对应的字段分别是name,sex,age 。 在你的excel表格中增加一列&#xff0c;利用excel的公式自动生成sql语句&#xff0c;方法如下&#xff1a; 1、增加一列&#xf…

Java中的推断异常

借用和窃取其他语言的概念和想法总是很高兴的。 Scala的Option是我真正喜欢的一个主意&#xff0c;因此我用Java编写了一个实现。 它包装了一个可能为null或不为null的对象&#xff0c;并提供了一些可按某种功能使用的方法。 例如&#xff0c;isDefined方法添加了一种面向对象的…

重载,覆盖,隐藏

转载于:https://www.cnblogs.com/jhcelue/p/7145525.html

Animate.css介绍

Animate.css简介 animate.css 动画库&#xff0c;预设了抖动&#xff08;shake&#xff09;、闪烁&#xff08;flash&#xff09;、弹跳&#xff08;bounce&#xff09;、翻转&#xff08;flip&#xff09;、旋转&#xff08;rotateIn/rotateOut&#xff09;、淡入淡出&#x…

logstash 吞吐量优化_1002-谈谈ELK日志分析平台的性能优化理念

在生产环境中&#xff0c;我们为了更好的服务于业务&#xff0c;通常会通过优化的手段来实现服务对外的性能最大化&#xff0c;节省系统性能开支&#xff1b;关注我的朋友们都知道&#xff0c;前段时间一直在搞ELK&#xff0c;同时也记录在了个人的博客篇章中&#xff0c;从部署…

spark SQL(三)数据源 Data Source----通用的数据 加载/保存功能

Spark SQL 的数据源------通用的数据 加载/保存功能 Spark SQL支持通过DataFrame接口在各种数据源上进行操作。DataFrame可以使用关系变换进行操作&#xff0c;也可以用来创建临时视图。将DataFrame 注册为临时视图允许您对其数据运行SQL查询。本节介绍使用Spark Data Sou…

sqlserver日期函数

SQLServer时间日期函数详解,SQLServer,时间日期, 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上&#xff0c;返回新的 datetime 值 例如&#xff1a;向日期加上2天 select dateadd(day,2,2004-10-15) --返回&#xff1a…

荣耀鸿蒙系统开机动画,荣耀赵明:鸿蒙系统首发设备欲屏蔽开机广告

来源&#xff1a;硅谷分析狮余承东表示8月9日会发布鸿蒙系统&#xff0c;而从他透露的一些细节看&#xff0c;鸿蒙系统将首先运用在智慧屏终端上&#xff0c;其配合大屏幕和自研芯片(麒麟AI芯片&#xff0c;鸿鹄智慧显示芯片&#xff0c;凌霄WIFI芯片)&#xff0c;将实现生态上…