UVA 11149.Power of Matrix-矩阵快速幂倍增

Power of Matrix

 UVA - 11149 

代码:

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 using namespace std;
 6 #define maxn 44
 7 #define mod 10
 8 int n;
 9 struct matrix{
10     int f[maxn][maxn];
11 };
12 matrix sum(matrix a,matrix b){
13     int i,j;
14     matrix s;
15     for(i=0;i<n;i++)
16         for(j=0;j<n;j++)
17             s.f[i][j]=(a.f[i][j]+b.f[i][j])%mod;
18     return s;
19 }
20 matrix mul(matrix a,matrix b){
21     int i,j,k;
22     matrix s;
23     memset(s.f,0,sizeof(s.f));
24     for(i=0;i<n;i++)
25         for(j=0;j<n;j++)
26             for(k=0;k<n;k++)
27             s.f[i][j]=(s.f[i][j]+a.f[i][k]*b.f[k][j])%mod;
28     return s;
29 }
30 matrix pows(matrix e,int b){
31     matrix s,a;
32     int i,j,k;
33     a=e;
34     for(i=0;i<n;i++)
35         for(j=0;j<n;j++)
36         if(i==j)s.f[i][j]=1;
37         else s.f[i][j]=0;
38     while(b){
39         if(b&1)
40             s=mul(s,a);
41         a=mul(a,a);
42         b=b>>1;
43     }
44     return s;
45 }
46 matrix work(matrix e,int k){
47     matrix s,a,b;
48     if(k==1)
49         return e;
50     a=work(e,k/2);
51     s=sum(a,mul(a,pows(e,k/2)));
52     if(k&1)
53         s=sum(s,pows(e,k));
54     return s;
55 }
56 int main(){
57     int k;
58     while( cin>>n>>k){
59         if(n==0)
60             break;
61         int i,j,a;
62         matrix e;
63         for(i=0;i<n;i++)
64         {
65             for(j=0;j<n;j++)
66             {
67                 cin>>a;
68                 e.f[i][j]=a%10;
69             }
70         }
71         e=work(e,k);
72         for(i=0;i<n;i++)
73         {
74             cout<<e.f[i][0];
75             for(j=1;j<n;j++)
76                 cout<<" "<<e.f[i][j];
77             cout<<endl;
78         }
79         cout<<endl;
80     }
81     return 0;
82 }

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ZERO-/p/9692425.html

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

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

相关文章

JDK动态代理和CGLIB动态代理的区别

JDK动态代理和CGLIB动态代理的区别

Oracle计算时间差函数

两个Date类型字段&#xff1a;START_DATE&#xff0c;END_DATE&#xff0c;计算这两个日期的时间差&#xff08;分别以天&#xff0c;小时&#xff0c;分钟&#xff0c;秒&#xff0c;毫秒&#xff09;&#xff1a; 天&#xff1a; ROUND(TO_NUMBER(END_DATE - START_DATE)) 小…

杂项

结巴直接分词 python -m jieba -d allTrain.txt > train_contents.txt 使用redis cmd1 &#xff1a;redis-server.exe redis.windows.conf cmd2&#xff1a;redis-cli.exe -h 127.0.0.1 -p 6379 scrapy-redis src- scrapy-redis copy- scrapy project redis keys * 列出 h…

强制使用CGLIB实现动态代理@EnableAspectJAutoProxy(proxyTargetClass = true)

用EnableAspectJAutoProxy(proxyTargetClass true)注解来开启AOP功能&#xff0c;基于CGLIB实现 proxyTargetClass&#xff1a;表示动态代理实现方式&#xff0c;如果值设置true&#xff0c;表示需要代理类都基于CGLIB来实现&#xff1b;默认情况下值是设置成false表示如果原…

:after伪类+content经典应用举例

:after伪类content 清除浮动的影响.box{padding:10px; background:gray;} .l{float:left;}<div class"box"><img class"l" src"http://image/imagemm1.jpg" /> </div>.fix:after{display:block; content:"clear"; h…

抗击海冰 地理信息系统来帮忙

对广大生活在沿海地区的居民来讲&#xff0c;冬天里除了要经受大风和低温的考验外&#xff0c;还多了一项担忧——海冰灾害。什么是海冰&#xff1f;狭义来讲&#xff0c;是指海水结成的冰。但广义地讲&#xff0c;海冰是浮在海上的冰的总称&#xff0c;不仅包括海水冻结的冰&a…

static_cast 和 reinterpret_cast的区别以及dynamic_cast

大多程序员在学C前都学过C&#xff0c;并且习惯于C风格&#xff08;类型&#xff09;转换。当写 C&#xff08;程序&#xff09;时&#xff0c;有时候我们在使用static_cast<>和reinterpret_cast<>时可能会有点模糊。在本 文中&#xff0c;我将说明static_cast<…

@ConditionalOnProperty的作用和用法

在spring boot中有时候需要控制配置类是否生效,可以使用ConditionalOnProperty注解来控制Configuration是否生效 步骤一&#xff1a;配置类代码 Configuration ConditionalOnProperty(prefix "application", value "enable", havingValue "true&qu…

Blog-LOGO原型

上午忙里偷闲&#xff0c;特意花了一个小时&#xff0c;制作博客LOGO&#xff0c;之前一直想给博客改头换面&#xff0c;但弄了后台之后才发现&#xff0c;自定义的图片不支持本地上传&#xff0c;为了不让这一个小时的功夫浪费&#xff0c;所以贴出这张png图。想打造独特的网页…

朴素贝叶斯和贝叶斯估计

贝叶斯定理 贝叶斯定理是关于随机事件A和B的条件概率和边缘概率的一则定理。 在参数估计中可以写成下面这样&#xff1a; 这个公式也称为逆概率公式&#xff0c;可以将后验概率转化为基于似然函数和先验概率的计算表达式&#xff0c;即 在贝叶斯定理中&#xff0c;每个名词都有…

spring的service不启动事务的配置。

为什么80%的码农都做不了架构师&#xff1f;>>> 原来是这样设置的&#xff1a; <tx:attributes> <tx:method name"*" read-only"true"/> </tx:attributes> 发现selectA调用selectB&#xff0c;如果selectB抛出Exception&…

@ConditionalOnJava注解使用

如果想让配置文件在特定的jdk版本中生效可以使用ConditionalOnJava注解 等于或大于指定的jdk版本 EQUAL_OR_NEWER 小于指定的jdk版本 OLDER_THAN 步骤一&#xff1a; 我项目用的jdk8 下面的注解表示jdk版本要大于等于jdk8才生效 ConditionalOnJava(range ConditionalOnJava…

nginx实现301(加密)跳转和200跳转

我们用nginx实现301跳转&#xff0c;下面我们先讲一下实现的大概思想&#xff0c;首先我们用yum或者编译安装nginx&#xff0c;然后配置nginx的主配置文件的子文件&#xff0c;&#xff08;在配置子文件的时候可以把默认文件先注释掉&#xff09;配置好子文件之后重启nginx服务…

《Sibelius 脚本程序设计》连载(四) - 1.1 创建第一个插件

《Sibelius 脚本程序设计》连载(Flash 格式) 转载于:https://www.cnblogs.com/Sibelius/archive/2010/12/01/1893324.html

面向对象编程——获取对象信息(五)

当我们拿到一个对象的引用时&#xff0c;如何知道这个对象是什么类型、有哪些方法呢&#xff1f; 使用type() 首先&#xff0c;我们来判断对象类型&#xff0c;使用type()函数&#xff1a; 基本类型都可以用type()类型&#xff1a; >>> type(123) <class int> &…

ASP.NET控件开发基础5

上一篇简单的讲了从WebControl继承的控件(好象我讲的都是简单的,嘿嘿).本次讲的更简单,主题是是属性,只当分享经验,希望对大家有帮助我们根据属性的不同表现形式,把其区分为简单属性和复杂属性下面来看下属性的表现形式简单属性表现形式如下,大家都很熟悉 <asp:TextBox ID&q…

项目Alpha冲刺Day4

一、会议照片 二、项目进展 1.今日安排 学习熟悉前台框架且搭建前台页面框架。 2.问题困难 使用了前端的构建工具webpack&#xff0c;困难在于怎么使用gradle结合它连同后台框架中的配置一起打包&#xff0c;因为本身都才刚接触这两者。本来希望每个人下好项目能配置尽量少的东…