poj3233Matrix Power Series
链接
也是矩阵经典题目 二分递归求解
a+a^2+a^3+..+a^(k/2)+a^(k/2+1)+...+a^k = a+a^2+..+a^k/2+a^k/2(a^1+a^2+..+a^k/2)(偶数)
a+a^2+a^3+..+a^(k/2)+a^(k/2+1)+...+a^k = a+a^2+..+a^k/2+a^k/2(a^1+a^2+..+a^k/2)+a^k。 奇数
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<vector> 7 #include<cmath> 8 #include<queue> 9 #include<set> 10 using namespace std; 11 #define N 1e9 12 #define LL long long 13 #define INF 0xfffffff 14 const double eps = 1e-8; 15 const double pi = acos(-1.0); 16 const double inf = ~0u>>2; 17 struct Mat 18 { 19 int mat[31][31]; 20 }; 21 int n,mod; 22 Mat operator + (Mat a,Mat b) 23 { 24 Mat c; 25 int i,j; 26 for(i = 0 ; i < n ;i++) 27 for(j = 0 ;j < n ;j++) 28 { 29 if(a.mat[i][j]+b.mat[i][j]>mod) 30 c.mat[i][j] = (a.mat[i][j]+b.mat[i][j])%mod; 31 else 32 c.mat[i][j] = a.mat[i][j]+b.mat[i][j]; 33 } 34 return c; 35 } 36 Mat operator * (Mat a,Mat b) 37 { 38 Mat c; 39 memset(c.mat,0,sizeof(c.mat)); 40 int i,j,k; 41 for(k =0 ; k < n ; k++) 42 { 43 for(i = 0 ; i < n ;i++) 44 { 45 if(a.mat[i][k]==0) continue; 46 for(j = 0 ;j < n ;j++) 47 { 48 if(b.mat[k][j]==0) continue; 49 c.mat[i][j] = (c.mat[i][j]+a.mat[i][k]*b.mat[k][j])%mod; 50 } 51 } 52 } 53 return c; 54 } 55 Mat operator ^(Mat a,int k) 56 { 57 Mat c; 58 int i,j; 59 for(i =0 ; i < n ;i++) 60 for(j = 0; j < n ;j++) 61 c.mat[i][j] = (i==j); 62 for(; k ;k >>= 1) 63 { 64 if(k&1) c = c*a; 65 a = a*a; 66 } 67 return c; 68 } 69 Mat solve(Mat x,int k) 70 { 71 if(k==1) return x; 72 Mat c ; 73 c = x^k; 74 Mat a = solve(x,k/2); 75 Mat b = x^(k/2); 76 if(k&1) c = a+b*a+c; 77 else c = a+b*a; 78 return c; 79 } 80 int main() 81 { 82 int t; 83 int i,j; 84 while(scanf("%d%d%d",&n,&t,&mod)!=EOF) 85 { 86 Mat x; 87 for(i = 0 ; i < n ;i++) 88 for(j = 0; j < n ;j++) 89 scanf("%d",&x.mat[i][j]); 90 x = solve(x,t); 91 for(i =0 ; i < n ;i++) 92 { 93 for(j =0 ; j < n-1; j++) 94 printf("%d ",x.mat[i][j]%mod); 95 printf("%d\n",x.mat[i][n-1]%mod); 96 } 97 } 98 return 0; 99 }
View Code
转载于:https://www.cnblogs.com/shangyu/p/3621001.html
poj3233Matrix Power Series相关推荐
- I-Matrix Power Series POJ - 3233 矩阵快速幂+分治
I-Matrix Power Series POJ - 3233 矩阵快速幂+分治 Problem Description Given a n × n matrix A and a positive ...
- poj 3233 Matrix Power Series
Matrix Power Series 思路 题意比较简单,就是要求S(n)=∑i=1nAiS(n) = \sum _{i = 1} ^{n} A^ {i}S(n)=∑i=1nAi,显然有S(n)= ...
- 【矩阵乘法】Matrix Power Series(poj 3233)
Matrix Power Series poj 3233 题目大意 给你一个矩阵A,让你求S=A+A2+A3+-+AkS = A + A^2 + A^3 + - + A^kS=A+A2+A3+-+Ak ...
- Matrix Power Series
http://poj.org/problem?id=3233 题解: 构造矩阵: a:A 1 b:A 0 A 1 其中 矩阵套矩阵: A代表原矩阵: 1代表单 ...
- POJ 3233 Matrix Power Series (矩阵分块,递推)
矩阵乘法是可以分块的,而且幂的和也是具有线性的. 不难得到 Si = Si-1+A*Ai-1,Ai = A*Ai-1.然后矩阵快速幂就可以了. /*************************** ...
- poj 3233 Matrix Power Series
最近一直在做矩阵的题目,这算是一道简单题目吧. 建立一个矩阵的结构体,便于赋值和返回值. S = A + A2 + A3 + - + Ak 如果 S=A+A2 + A3 +A4 S= (A + A ...
- POJ 3233 Matrix Power Series 矩阵快速幂 + 二分
题意:求矩阵的次方和 解题思路:最容易想到方法就是两次二分因为 我们可以把一段 A^1 + A^2 + .......A^K 变成 A^1 + ..A^(K/2) +( A^1 + ..A^( ...
- POJ3233 Matrix Power Series
原题传送:http://poj.org/problem?id=3233 两个二分:二分 k ,二分矩阵. 求Sn = A + A2 + A3 + - + Ak. 首先我们能矩阵二分快速幂计算出Ak,那 ...
- poj 3323 Matrix Power Series (矩阵乘法 非递归形式)
为了搞自动机+矩阵的题目,特来学习矩阵快速幂..........非递归形式的求Sum(A+A^2+...+A^k)不是很懂,继续弄懂................不过代码简洁明了很多,亮神很给力 # ...
最新文章
- mysql 前台启动_从Windows命令行启动MySQL
- Linux控制台打开显示字符画,Linux 命令行字符画工具
- UIWindow 使用介绍
- 在vuejs 中使用axios不能获取属性data的解决方法
- 使用JS 加入收藏,设为首页.
- Xcode 9.0 新增功能大全
- (转)Thrift在Windows及Linux平台下的安装和使用示例
- JQuery Easyui/TopJUI表格基本的删除功能(删除当前行和多选删除)
- 量子计算机与仿生论文,有关量子力学的论文
- PS 画笔工具与文字工具
- #Linux中的GCC编程# 20170731 C培训作业
- Myeclipse2014破解教程
- 计算机无法识别u盘,电脑无法识别U盘怎么办?简单搞定
- android 实现qq动画,Android实现仿QQ登录界面背景动画效果
- 会计基础-会计账簿+对账+结账+财产清查+财务会计报告+会计核算程序
- ele-ui 里面的分页操作
- 易基因技术推介|简化基因组甲基化测序研究解决方案
- 数据结构 :: 顺序栈与链式栈的设计与实现
- 尚硅谷-康师傅-MySQL详细笔记(1-9章)
- 2018年 团体程序设计天梯赛——题解集
热门文章
- 优秀Python学习资源收集汇总
- 如何对建模型数据进行预处理
- java 7个数排序_7 Java 快速排序
- python画图如何调整图例位置_Python——legend()图例位置调整
- 典型微型计算机的基本结构包括,第二章 微型计算机基础.doc
- python爬虫正则表达式爬取网页标签_Python爬虫实例(4)-用urllib、re和正则表达式爬取网页图片...
- js数组常用方法总结(包括ES6)
- “21天好习惯”第一期-7
- java常用lib_Java常用工具类整理
- 【Java程序设计】类的重用