poj 3233(矩阵快速幂)
来源:互联网 发布:淘宝的价格怎么定价 编辑:程序博客网 时间:2024/05/13 09:28
题目链接:http://poj.org/problem?id=3233;
题意:给出一个公式求这个式子模m的解;
分析:本题就是给的矩阵,所以很显然是矩阵快速幂,但有一点,本题k的值非常大,所以要用二分求和来减少运行时间。
代码:
#include <set>#include <map>#include <stack>#include <queue>#include <math.h>#include <vector>#include <string>#include <utility>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <functional>using namespace std;struct Matrax{ long long m[50][50];}ter;int n,m;Matrax add(Matrax a,Matrax b){ Matrax p; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ p.m[i][j]=a.m[i][j]+b.m[i][j]; p.m[i][j]%=m;// cout<<p.m[i][j]<<" "; }// cout<<endl; } return p;}//矩阵加法Matrax muli(Matrax a,Matrax b){ Matrax p; for(int i=0;i<n;i++) for(int j=0;j<n;j++){ p.m[i][j]=0; for(int k=0;k<n;k++){ p.m[i][j]+=a.m[i][k]*b.m[k][j]; p.m[i][j]%=m; } } return p;}//矩阵乘法Matrax quick_mod(Matrax a,int b){ Matrax ans=ter; while(b){ if(b&1){ ans=muli(ans,a); b--; } else { b>>=1; a=muli(a,a); } } return ans;}//快速幂Matrax sum(Matrax a,int k){ if(k==1)return a; Matrax ans,b; ans=sum(a,k/2); if(k&1){ b=quick_mod(a,k/2+1); ans=add(ans,muli(ans,b)); ans=add(ans,b); } else { b=quick_mod(a,k/2); ans=add(ans,muli(ans,b)); } return ans;}//二分求和int main(){ int k; while(scanf("%d%d%d",&n,&k,&m)!=EOF){ Matrax A,tmp; for(int i=0;i<n;i++) for(int j=0;j<n;j++){ scanf("%I64d",&A.m[i][j]); ter.m[i][j]=(i==j); tmp.m[i][j]=0; } tmp=sum(A,k); for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<tmp.m[i][j]<<" "; cout<<endl; } } return 0;}
0 0
- POJ 3233 矩阵快速幂
- poj 3233 矩阵快速幂
- poj 3233 矩阵快速幂
- poj 3233(矩阵快速幂)
- poj 3233 矩阵快速幂
- POJ 3233 矩阵快速幂
- poj 3233(矩阵快速幂)
- POJ 3233(矩阵快速幂)
- POJ 3233 矩阵快速幂
- poj 3233 矩阵快速幂 + 二分求和
- POJ 3233 —— 矩阵快速幂
- poj 3233(矩阵快速幂+二分)
- POJ 3233 矩阵快速幂&二分
- POJ 3233 矩阵快速幂 等比数列
- poj 3233-矩阵的快速幂
- POJ 3233 Matrix Power Series 【矩阵快速幂,矩阵加速】
- POJ 3233 Matrix Power Series 【矩阵快速幂+等比矩阵】
- poj-3233 Matrix Power(构造矩阵+矩阵快速幂)
- ios清除缓存
- mfc+CvvImage类 显示工程目录下的图片
- Day3.2--Android简单UI控件之TextView的高级使用--SpannableString的使用
- servlet&jsp 及MySQL 乱码解决方案
- FragmentPagerAdapter与FragmentStatePagerAdapter差异
- poj 3233(矩阵快速幂)
- 爬虫学习(一)
- 利用SecureCRT实现跳过堡垒机自动登录
- 浏览器图片\文件上传到服务器 ajaxfileupload.js使用实例
- How to generate a local image from openstack
- 一个基于SAE的一个微博爱好者证书应用
- [线段树 标记] BZOJ 3226 [Sdoi2008]校门外的区间
- Google 绘图(mapping)
- mysql常用字符串操作函数大全,以及实例