POJ-3734-Blocks
来源:互联网 发布:sat知乎 编辑:程序博客网 时间:2024/05/16 06:29
求和,需要自己递推下公式,然后用矩阵快速幂解决~第一次做这种吧~
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<vector>using namespace std;const int mod=10007;vector<vector<int> > m,ans;int n;vector<vector<int> > Multi(vector<vector<int> > &a,vector<vector<int> > &b){ vector<vector<int> > ans; ans.resize(3); for(int i=0;i<3;i++)ans[i].resize(3); for(int i=0;i<a.size();i++)for(int k=0;k<b.size();k++) for(int j=0;j<b[0].size();j++)ans[i][j]=(ans[i][j]+a[i][k]*b[k][j])%mod; return ans;}int main(){ int T; scanf("%d",&T); while(T--) {scanf("%d",&n);m.clear();ans.clear();m.resize(3);m[0].push_back(2);m[0].push_back(1);m[0].push_back(0);m[1].push_back(2);m[1].push_back(2);m[1].push_back(2);m[2].push_back(0);m[2].push_back(1);m[2].push_back(2);ans.resize(3);ans[0].push_back(1);ans[1].push_back(0);ans[2].push_back(0);while(n){ if(n&1)ans=Multi(m,ans); m=Multi(m,m); n>>=1;}printf("%d\n",ans[0][0]); } return 0;}
0 0
- poj 3734 Blocks 矩阵
- POJ-3734-Blocks
- POJ 3734 Blocks
- POJ 3734-Blocks
- poj 3734 Blocks
- POJ 3734 Blocks
- POJ 3734Blocks
- POJ 3734 Blocks
- POJ-3734 Blocks
- poj 3734 Blocks
- POJ 3734 Blocks 笔记
- POJ 3734 Blocks 矩阵乘法
- poj 3734 Blocks 组合计数
- POJ 3734 Blocks 组合数学
- POJ 3734 Blocks DP优化
- Blocks (POJ
- Blocks - POJ 3734 矩阵乘法递推
- poj 3734 Blocks 【矩阵快速幂】
- 矩形类的构造函数
- 二哥养细菌
- php面向对象之抽象类
- Android LocalBroadcastManager
- Ubuntu 下的截图命令
- POJ-3734-Blocks
- Hibernate中get与load的用法
- 使用正则表达式限制swing (JTextField等) 的输入
- sql的聚合函数
- [css]css.map结尾的文件是用来做什么的?
- 魔术师的秘密
- 外链的部门与质量至关关紧的反映
- 转帖 三星的面试,大家看看结果有戏没? [问题点数:88分]
- 应用Apache Axis2 实现Webservice发布