pku3233 Matrix Power Series
来源:互联网 发布:linux中没有yum命令 编辑:程序博客网 时间:2024/05/02 04:49
差点以为是秦九韶+矩阵的某种优化
然而这是不可能的= =
我们联想到秦九韶的方法,但是我们不提出来那么多次不就行了!
所以我们考虑二分
如果k为偶数,那么(A+A^2+....A^K) = (A+...+A^K/2)+A^K/2*(A+...+A^K/2)
如果k为奇数,那么(A+A^2+....A^K) = (A+...+A^K/2)+A^K/2*(A+...+A^K/2)+A^k
然后……递归就行= =
然而翻了下Status= =发现非常的慢!大概优化就是改成递推之类的然后就能省去很多计算
或者是换元整理出一个新的矩阵然后直接快速幂
然而窝并不会= =以上就当窝天真单纯的想法
Problem: 3233User: BPM136Memory: 1544KTime: 1532MSLanguage: G++Result: Accepted#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>#include<algorithm>#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define down(i,a,b) for(int i=a;i>=b;i--)using namespace std;inline LL read(){LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;}#define N 30int n,m,inf;struct matrix{int a[N][N];void clear(){memset(a,0,sizeof(a));}void OUT(){fo(i,0,m-1){fo(j,0,m-1)cout<<a[i][j]<<' ';cout<<endl;}cout<<endl;}matrix operator*(const matrix b)const{matrix anss;fo(i,0,m-1)fo(j,0,m-1){anss.a[i][j]=0;fo(k,0,m-1){anss.a[i][j]+=a[i][k]*b.a[k][j];anss.a[i][j]%=inf;}}return anss;}matrix operator+(const matrix b)const{matrix anss;fo(i,0,m-1)fo(j,0,m-1){anss.a[i][j]=a[i][j]+b.a[i][j];anss.a[i][j]%=inf;}return anss;}};matrix I;void getI(){fo(i,0,m-1)fo(j,0,m-1)if(i==j)I.a[i][j]=1;else I.a[i][j]=0;}matrix KSM(matrix a,int b){if(b==0)return I;if(b==1)return a;matrix ret=KSM(a,b/2);ret=ret*ret;if(b%2)ret=ret*a;return ret;}matrix calc(matrix a,int b){if(b==0)return I;if(b==1)return a;matrix anss=calc(a,b/2);matrix ct=KSM(a,b/2);if(b%2){matrix t=KSM(a,b);return anss+ct*anss+t;}else return anss+ct*anss;}int main(){matrix A,ans;m=read(),n=read(),inf=read();getI();fo(i,0,m-1)fo(j,0,m-1)A.a[i][j]=read();calc(A,n).OUT();return 0;}
0 0
- pku3233 Matrix Power Series
- pku3233 Matrix Power Series
- Matrix Power Series
- poj3233 - Matrix Power Series
- POJ3233 Matrix Power Series
- poj3233 Matrix Power Series
- acm-Matrix Power Series
- Matrix Power Series
- POJ3233 Matrix Power Series
- Matrix Power Series
- poj3233 - Matrix Power Series
- poj3233 Matrix Power Series
- poj Matrix Power Series
- Matrix Power Series
- NYOJ299 Matrix Power Series
- 【poj3233】 Matrix Power Series
- Matrix Power Series(?)
- POJ3233 Matrix Power Series
- 飞行模式下打开wifi 和 Setting界面增加Shut down & Reboot功能
- ARM和NEON指令
- 使用VS2010 编译Openssl
- 计算机中数据的存储和读取
- C++ 和 C# 开发类型对应信息
- pku3233 Matrix Power Series
- python——读写excel
- MediaPlayer获取实例的方法
- 欢迎使用CSDN-markdown编辑器
- Xshell 服务器文件传输
- 服务器部署MVC API 遇到IIS 403.14 错误
- CSS基础选择器
- core dump定位错误位置
- 【网络流24题】太空飞行计划问题