Hdu1757 - A Simple Math Problem - 矩阵快速幂
来源:互联网 发布:装修软件app 编辑:程序博客网 时间:2024/04/29 17:35
#include<stdio.h>#include<string.h>int n,m;long long k;struct JZ{int jz[50][50];};JZ mul(JZ a,JZ b){JZ ans;int i,j,k;for(i=0;i<=9;i++){for(j=0;j<=9;j++){ans.jz[i][j]=0;for(k=0;k<=9;k++){ans.jz[i][j]+=(a.jz[i][k]%m)*(b.jz[k][j]%m);}ans.jz[i][j]=ans.jz[i][j]%m;}}return ans;}JZ pow(JZ c,long long d){JZ ans;int i,j;for(i=0;i<=9;i++){for(j=0;j<=9;j++){if(j==i){ans.jz[i][j]=1;}else {ans.jz[i][j]=0;}}}while(d){if(d%2==1){ans=mul(ans,c);}c=mul(c,c);d=d/2;}return ans;}int main(){int i,j;while(scanf("%I64d%d",&k,&m)!=EOF){JZ f;for(i=0;i<=9;i++){for(j=0;j<=9;j++){if(i==0){f.jz[i][j]=j;}else{f.jz[i][j]=0;}}}JZ simple;int x;for(i=9;i>=0;i--){scanf("%d",&x);for(j=0;j<=9;j++){if(j==9){simple.jz[i][j]=x;}else if(j==i-1){simple.jz[i][j]=1;}else{simple.jz[i][j]=0;}}}if(k>9){ simple=pow(simple,k-9);f=mul(f,simple);printf("%d\n",f.jz[0][9]%m);}else{printf("%d\n",f.jz[0][k]%m);}}}
0 0
- 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 (矩阵快速幂)
- 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 矩阵快速幂 水题
- 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(矩阵)
- A Simple Math Problem hdu1757
- python读取文件
- windows线程池的使用
- 在Eclipse中安装StatET插件
- WPF:DataGrid分页实现
- 轻量级Java EE 企业应用实战-JSP笔记(二)-JSP对象介绍
- Hdu1757 - A Simple Math Problem - 矩阵快速幂
- Pig Latin练习-python
- Linux ssh(以及其他访问主机方式)登录变慢解决方法
- JDBC的事物隔离级别
- VC常用代码之通过注册表寻找应用程序路径
- 49_view对象渲染的两个阶段&利用params修改view对象的位置
- poj-1679 The Unique MST 判断最小生成树是否唯一
- POJ1061 - 青蛙的约会 - 数论
- Python装饰器与面向切面编程