矩阵模板
2015-09-11 20:24
302 查看
struct Matrix{ int mat[15][15]; int n; void init(int _n){ n = _n; memset(mat,0,sizeof(mat)); } Matrix operator *(const Matrix &b)const{ Matrix ret; ret.init(n); for(int i = 0;i < n;i++) for(int j = 0;j < n;j++){ ret.mat[i][j] = 0; for(int k = 0;k < n;k++){ ret.mat[i][j] += (long long)mat[i][k]*b.mat[k][j]%MOD; if(ret.mat[i][j] >= MOD) ret.mat[i][j] -= MOD; } } return ret; } }; Matrix pow_M(Matrix a,long long n){ Matrix ret; Matrix tmp = a; ret.init(a.n); for(int i = 0;i < a.n;i++)ret.mat[i][i] = 1; while(n){ if(n&1)ret = ret*tmp; tmp = tmp*tmp; n >>= 1; } return ret; }
相关文章推荐
- 获取日期
- 权限(Permission denied)问题如何确认是Selinux 约束引起?
- 野生程序员成长记(一) Android系统特性与环境配置
- arm平台裸机程序下载-linux下的dnw工具解决方案
- 利用zxing识别图片二维码
- 如何设置SELinux 策略规则 ? 在Kernel Log 中出现"avc: denied" 要如何处理?
- IOS_UI_数据库
- linux iptables SNAT NAT 【原创】
- 《代码整洁之道》学习计划
- HBase相关概念
- 崔莺莺到宋楚瑜,张你怎么看待?
- 重载操作符
- rsync+inotify配置
- nyoj 27 水池数目 【dfs(模板题)】
- bzoj1611:流星雨
- <Chapter 2>2-2.开发应用(developing the Application)
- 百度地图---定位
- 第七周第五天
- UI:这段时间的小总结
- 安装Alcatraz来管理Xcode插件的步骤和注意点