HDU1575 矩阵快速幂入门
来源:互联网 发布:淘宝虚拟市场清退标准 编辑:程序博客网 时间:2024/06/05 20:24
Problem Description
A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
Input
数据的第一行是一个T,表示有T组数据。
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
Output
对应每组数据,输出Tr(A^k)%9973。
Sample Input
2
2 2
1 0
0 1
3 99999999
1 2 3
4 5 6
7 8 9
Sample Output
2
2686
其实就和快速幂一样…道理不难
但是不太好写…
特别是开始对jieguo这个变量赋值要分各种情况…
巨烦…
过几天去掉一些东西把这个玩意装进函数里
会改成模板的….
#include<iostream>#include<cstdio>#include<queue>#include<algorithm>#include<memory.h>#include<cstdlib>using namespace std;struct p{ int tu[11][11]; void ini() { for(int a=0;a<=10;a++) { for(int b=0;b<=10;b++) { tu[a][b]=0; } } } void iny() { for(int a=0;a<=10;a++) { for(int b=0;b<=10;b++) { tu[a][b]=1; } } }};int n,k;p xiangcheng(p a,p b){ p c; c.ini(); for(int q=1;q<=n;q++) { for(int w=1;w<=n;w++) { for(int e=1;e<=n;e++) { c.tu[q][w]+=a.tu[q][e]*b.tu[e][w]; c.tu[q][w]%=9973; } } } return c;}p q,jieguo,w;int main(){ int T; cin>>T; memset(&q,0,sizeof(&q)); while(T--) { cin>>n>>k; q.ini(); w.ini(); jieguo.ini(); int qq=k; for(int a=1;a<=n;a++)for(int b=1;b<=n;b++)cin>>q.tu[a][b]; w=q; if(qq&1)qq>>=1,jieguo=w,w=xiangcheng(w,w); else { while((qq&1)==0) { w=xiangcheng(w,w); qq>>=1; } qq>>=1; jieguo=w; w=xiangcheng(w,w); } while(qq) { if(qq&1)jieguo=xiangcheng(jieguo,w); w=xiangcheng(w,w); qq>>=1; } int ans=0; for(int a=1;a<=n;a++) { ans+=jieguo.tu[a][a]; ans%=9973; } cout<<ans<<endl; } return 0;}
0 0
- HDU1575 矩阵快速幂入门
- hdu1575之矩阵快速幂入门
- hdu1575(矩阵快速幂入门题)
- 快速矩阵幂HDU1575
- 矩阵快速幂 HDU1575
- HDU1575[矩阵快速幂]模板
- hdu1575 TrA 矩阵快速幂
- hdu1575 Tr A (矩阵快速幂)
- hdu1575(矩阵乘法快速幂)
- Hdu1575 - Tr A - 矩阵快速幂
- HDU1575-Tr A(矩阵快速幂)
- hdu1575 Tr A(矩阵快速幂)
- HDU1575 Tr A 【矩阵快速幂】
- HDU1575 Tr A(矩阵快速幂)
- hdu1575 Tr A 矩阵快速幂
- hdu1575 Tr A(矩阵快速幂)
- hdu1575 Tr A (矩阵快速幂)
- [矩阵快速幂]hdu1575 Tr A
- 关于Android SDK里的compileSdk、minSdk、targetSdk、buildTools、Tools、Platform-tools
- 2013年长沙区域赛-HDU 4791-Alice's Print Service
- C语言关于文件概述
- KVO 和 NSNotificationcenter addObserver 和removeObserve成对出现的原因
- linux virt res shr这是值很大代表什么
- HDU1575 矩阵快速幂入门
- codevs 1269 匈牙利游戏
- leetcode-226. Invert Binary Tree 二叉树、递归,交换两个变量的值
- Android Studio报错:Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version
- android 基础 serialization,Transient
- NewSQL数据库大对象块存储原理与应用
- mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/sha
- return语句的使用
- Maven项目报错