POJ 3233 Matrix Power Series(矩阵等比求和)
模板题。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
int p[][],mat[][];
int t;
void qmod(int n,int MOD)
{
int c[][],i,j,k;
while(n)
{
memset(c,,sizeof(c));
if(n&)
{
memset(c,,sizeof(c));
for(i = ;i < t;i ++)
{
for(j = ;j < t;j ++)
{
for(k = ;k < t;k ++)
{
c[i][j] += mat[i][k] * p[k][j];
c[i][j] %= MOD;
}
}
}
memcpy(mat,c,sizeof(mat));
}
memset(c,,sizeof(c));
for(i = ;i < t;i ++)
{
for(j = ;j < t;j ++)
{
for(k = ;k < t;k ++)
{
c[i][j] += p[i][k] * p[k][j];
c[i][j] %= MOD;
}
}
}
memcpy(p,c,sizeof(p));
n >>= ;
}
}
int main()
{
int n,m,k,i,j;
while(scanf("%d%d%d",&n,&k,&m)!=EOF)
{
for(i = ;i < n;i ++)
{
for(j = ;j < n;j ++)
scanf("%d",&p[i][j]);
}
for(i = ;i < n;i ++)
{
p[i][i+n] = p[i+n][i+n] = ;
}
n <<= ;
for(i = ;i < n;i ++)
{
for(j = ;j < n;j ++)
mat[i][j] = (i == j);
}
t = n;
qmod(k+,m);
n >>= ;
for(i = ;i < n;i ++)
{
mat[i][i+n] --;
if(mat[i][i+n] < )
mat[i][i+n] += m;
}
for(i = ;i < n;i ++)
{
for(j = ;j < n;j ++)
{
if(j == n-)
printf("%d\n",mat[i][j+n]);
else
printf("%d ",mat[i][j+n]);
}
}
}
return ;
}
POJ 3233 Matrix Power Series(矩阵等比求和)的更多相关文章
- Poj 3233 Matrix Power Series(矩阵乘法)
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Description Given a n × n matrix A and ...
- poj 3233 Matrix Power Series(矩阵二分,高速幂)
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 15739 Accepted: ...
- POJ 3233 Matrix Power Series(二分等比求和)
Matrix Power Series [题目链接]Matrix Power Series [题目类型]二分等比求和 &题解: 这题我原来用vector写的,总是超时,不知道为什么,之后就改用 ...
- POJ 3233 Matrix Power Series(矩阵高速功率+二分法)
职务地址:POJ 3233 题目大意:给定矩阵A,求A + A^2 + A^3 + - + A^k的结果(两个矩阵相加就是相应位置分别相加).输出的数据mod m. k<=10^9. 这 ...
- poj 3233 Matrix Power Series 矩阵求和
http://poj.org/problem?id=3233 题解 矩阵快速幂+二分等比数列求和 AC代码 #include <stdio.h> #include <math.h&g ...
- POJ 3233 Matrix Power Series 矩阵快速幂
设S[k] = A + A^2 +````+A^k. 设矩阵T = A[1] 0 E E 这里的E为n*n单位方阵,0为n*n方阵 令A[k] = A ^ k 矩阵B[k] = A[k+1] S[k] ...
- POJ 3233 Matrix Power Series 矩阵快速幂+二分求和
矩阵快速幂,请参照模板 http://www.cnblogs.com/pach/p/5978475.html 直接sum=A+A2+A3...+Ak这样累加肯定会超时,但是 sum=A+A2+...+ ...
- 矩阵十点【两】 poj 1575 Tr A poj 3233 Matrix Power Series
poj 1575 Tr A 主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575 题目大意:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的 ...
- POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】
任意门:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K To ...
随机推荐
- Html5 杂记
(一):html5的声明 <!DOCTYPE html> 注意:声明必须是 HTML 文档的第一行,位于 <html> 标签之前. 声明不是 HTML 标签:它是指示 we ...
- 大熊君JavaScript插件化开发------(实战篇之DXJ UI ------ ProcessBar)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,还记得前两篇文章吗.主要讲述了以“jQuery的方式如何开发插件”,以及过程化设计与面向对象思想设计相结合的方式是 如何设计一个插件的,两种方式各有利 ...
- PHP通用分页(Pager)类
三种不同展示方式 附上style~ 1. 效果图1 2.效果图2 3. 效果图3 4. 分页类主体 <?php /** * PHP通用分页类 * show(2) 1 ... 62 63 6 ...
- 64位操作系统 通过ODP.NET 访问ORACLE 11g
摘要:64位操作系统部署.NET 程序访问oracle时,无法连接问题.(注意:客户端是64位系统 ,服务端是否64位 还是32位无关.) 1.到oracle 官网搜索相关版本的 ODAC网址: ht ...
- Lua手动编译姿势
LUA-5.3.3.tar.gz Lua源码+链接2016年5月30日更新 手动编译姿势: 已经装有VS2010 使用VS自带的 cl.exe以及 VS命令簿 打开文件地址 运行自己的bat文件 my ...
- Json序列化与反序列化
参考:http://www.cnblogs.com/caofangsheng/p/5687994.html#commentform 下载链接:http://download.csdn.net/deta ...
- HtmlAgilityPack 学习和笔记
介绍: http://www.cnblogs.com/bomo/archive/2013/01/28/2879361.html 实战 c#获取外网ip 网址:http://ip138.com/ 如图: ...
- Linux下安装cmake
cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...
- python:列表与元组
1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...
- python selenium中使用ddt进行数据驱动测试