HDU1757(矩阵快速幂+简单的矩阵构造)
来源:互联网 发布:暗黑修仙数据库 编辑:程序博客网 时间:2024/05/22 20:47
很简单的矩阵构造看似很麻烦,其实直接写就ok了。
code:
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>//a&3==a%4using namespace std ;#define ll int#define mem(a) memset(a,0,sizeof(a))const double eps = 1e-8;const int maxn = 110010;const int inf = 0x3f3f3f3f;ll mod;struct matrix{ ll mat[30][30]; matrix() { memset(mat,0,sizeof(mat)); }};matrix multiply(matrix a,matrix b,int n){ matrix res; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { for(int k=0;k<n;k++) { res.mat[i][j]+=a.mat[i][k]*b.mat[k][j]%mod; res.mat[i][j]%=mod; } } } return res;}matrix quickmi(matrix a,ll b,int n){ matrix E; E.mat[0][0]=1; matrix res; if(b==0) { return E; } for(int i=0;i<n;i++) { E.mat[i][i]=1; res.mat[i][i]=1; } E=multiply(a,E,n); while(b>0) { if(b%2==1) { res=multiply(res,E,n); } b=b/2; E=multiply(E,E,n); } return res;}void out(matrix res,int n){ for(int i=0;i<n;i++) { cout<<res.mat[i][0]; for(int j=1;j<n;j++) { cout<<" "<<res.mat[i][j]; } cout<<endl; }}int main(){ matrix res; matrix one; for(int i=0;i<10;i++) { one.mat[i][0]=i; } matrix sum; ll k,m; while(cin>>k>>m) { if(k>=10) { for(int i=0;i<10;i++) { scanf("%d",&res.mat[0][i]); if(i>=1) res.mat[i][i-1]=1; } mod=m; sum=quickmi(res,k-9,10); //out(sum,10); int hehe=0; for(int i=9;i>=0;i--) { hehe+=(i*sum.mat[0][9-i])%mod; hehe=hehe%mod; } cout<<hehe<<endl; } else { for(int i=0;i<10;i++) { scanf("%d",&res.mat[0][i]); } cout<<k<<endl; } } return 0;}
阅读全文
0 0
- HDU1757(矩阵快速幂+简单的矩阵构造)
- HDU1757 矩阵快速幂
- HDU1757(矩阵快速幂)
- hdu1757 矩阵快速幂--
- 快速矩阵幂 HDU1757
- 矩阵快速幂 HDU1757
- 矩阵快速幂 hdu1757
- Hdu1757(矩阵快速幂)
- HDU1757矩阵的简单运用
- HDU1757-A Simple Math Problem,矩阵快速幂,构造矩阵水过
- hdu1757——矩阵快速幂入门
- 构造矩阵+矩阵快速幂
- Hdu1757 - A Simple Math Problem - 矩阵快速幂
- HDU1757-A Simple Math Problem(矩阵快速幂)
- hdu1757-- A Simple Math Problem(矩阵快速幂优化)
- hdu1757 - A Simple Math Problem 矩阵快速幂
- hdu1757 A Simple Math Problem(矩阵快速幂)
- hdu1757 A Simple Math Problem (矩阵快速幂)
- oracle 常见错误
- 集中式的内容分发网络本就是错误的互联网设计,账号登录机制更是垃圾
- hadoop学习笔记-java操作HDFS
- leetcode_587.Erect the Fence?待解决
- hdu5950(递推+矩阵快速幂函) 2016亚洲区域赛沈阳站C题(铜牌题)
- HDU1757(矩阵快速幂+简单的矩阵构造)
- Authentication for Hadoop HTTP web-consoles ---Hadoop 1.2.1
- okHttp封装
- hadoop入门六(基础知识入门)
- ACM-10月15日周日周末训练心得
- java根据经纬度获取该经纬度的省市区
- SQL语句范例之表、空间、特权和dump
- 批处理命令Start的使用介绍
- 分析Android 搜狗输入法在微信和QQ中发送图片和表情