FZU1683 矩阵

//Accepted 220 KB 359 ms
#include <cstdio>
#include <cstring>
;
int pp;
struct matrix
{
//矩阵m*n
//(0,0)..(m-1,n-1)
int a[maxn][maxn];
int m,n;
matrix()
{
memset(a,,sizeof(a));
m=n=;
}
matrix operator+(matrix mymatrix)
{
matrix m_matrix;
int i,j;
;i<m;i++)
;j<n;j++)
m_matrix.a[i][j]=(a[i][j]+mymatrix.a[i][j])%pp;
m_matrix.m=m;
m_matrix.n=n;
return m_matrix;
}
matrix operator*(matrix mymatrix)
{
matrix m_matrix;
int i,j,k;
;i<m;i++)
{
;j<n;j++)
{
if (a[i][j])
;k<mymatrix.n;k++)
m_matrix.a[i][k]=(m_matrix.a[i][k]+a[i][j]*mymatrix.a[j][k])%pp;
}
}
m_matrix.m=m;
m_matrix.n=mymatrix.n;
return m_matrix;
}
//A^k
matrix getp(int k)
{
matrix d,c;
) return *this;
) return (*this)*(*this);
d=getp(k/);
==) return d*d;
else
return d*d*(*this);
}
//A+A^2+A^3+..+A^k
matrix sump(int k)
{
matrix d,c;
) return *this;
) return (*this)+(*this)*(*this);
d=sump(k/);
==)
{
);
}
else
)+getp(k);
}
void output()
{
int i,j;
;i<m;i++)
{
;j<n;j++)
printf("%d ",a[i][j]%pp);
printf("\n");
}
}
void input()
{
;i<m;i++)
{
;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
}
};
int n;
int k;
matrix tr,mtr;
int main()
{
pp=;
int T;
scanf("%d",&T);
;t<=T;t++)
{
scanf("%d",&n);
printf("Case %d: ",t);
)
{
) printf("1\n");
) printf("4\n");
) printf("9\n");
continue ;
}
tr.m=tr.n=;
tr.a[][]=;
tr.a[][]=tr.a[][]=tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr.a[][]=;
tr=tr.getp(n-);
mtr.m=;
mtr.n=;
mtr.a[][]=;
mtr.a[][]=;
mtr.a[][]=;
mtr.a[][]=;
tr=mtr*tr;
printf(][]);
}
;
}
FZU1683 矩阵的更多相关文章
- C语言 · 矩阵乘法 · 算法训练
问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200). 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j ...
- 获取Canvas当前坐标系矩阵
前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一 ...
- CSharpGL(32)矩阵与四元数与角度旋转轴的相互转换
CSharpGL(32)矩阵与四元数与角度旋转轴的相互转换 三维世界里的旋转(rotate),可以用一个3x3的矩阵描述:可以用(旋转角度float+旋转轴vec3)描述.数学家欧拉证明了这两种形式可 ...
- “为什么DirectX里表示三维坐标要建一个4*4的矩阵?”
0x00 前言 首先要说明的是,本文的标题事实上来自于知乎上的一个同名问题:为什么directX里表示三维坐标要建一个4*4的矩阵? - 编程 .因此,正如Milo Yip大神所说的这个标题事实上是存 ...
- js实现蛇形矩阵
参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...
- ACM 中 矩阵数据的预处理 && 求子矩阵元素和问题
我们考虑一个$N\times M$的矩阵数据,若要对矩阵中的部分数据进行读取,比如求某个$a\times b$的子矩阵的元素和,通常我们可以想到$O(ab)$的遍历那个子矩阵,对它的各 ...
- PAT 1050. 螺旋矩阵(25)
本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...
- [LeetCode] Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...
- [LeetCode] Longest Increasing Path in a Matrix 矩阵中的最长递增路径
Given an integer matrix, find the length of the longest increasing path. From each cell, you can eit ...
随机推荐
- 有关mipmaps
Mipmaps的作用是什么,仅仅是为了使屏幕三角形和纹理三角形的差异变小?有没有以空间换时间的理念? Mipmaps在生成一系列小的纹理样本时, 是如何从原始纹理采样的?即如何生成这些小的纹理样本.
- JBPM工作流入门总结
关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...
- oncontextmenu
一个页面中,BODY中用oncontextmenu='return false'来取消鼠标右键:在JS中设置oncontextmenu='return true'用window.document.on ...
- 20145218 《Java程序设计》第02次实验报告
北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 一.实验内容 初步掌握单元测试和T ...
- ember
为什么要用这种单页面应用.单页面应用就可以是一个web app ,而不是一个web site了,但是百度的大王是退mvc的,考虑到gc什么的? 所以说写组件component和mvc压根是两个完全从角 ...
- Java 基础知识点(必知必会其一)
如何将字符串转换为数字? package Day_2; /** * @author Administrator * 功能: 如何将字符串转换为数字? */ public class StringToI ...
- hdu 1695 GCD(莫比乌斯反演)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 使用 Fresco加载图片
概念: ImagePipeline ——负责从网络.本地图片.Content Provider(内容提供者)或者本地资源那里获取图片,压缩保存在本地存储中和在内存中保存为压缩的图片 Drawee——处 ...
- Simple Data
Git地址:https://github.com/markrendle/Simple.Data 来源:http://bbs.nfinal.com/read-13
- webform工程中aspx页面为何不能调用appcode文件夹下的类(ASP.NET特殊文件夹的用法)
App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...