博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3070
阅读量:6374 次
发布时间:2019-06-23

本文共 1168 字,大约阅读时间需要 3 分钟。

矩阵第一题。也是矩阵的模板题。下面是模板。

比较重要的是,矩阵的乘法会有很多很神奇的用法。比如如下几个网站所讲。

   这是Matrix67大神的网站。

 

#include <iostream>
using namespace std;
#define MAXN 2
#define LL long long
#define mod 10000
class Matrix
{
public:
    long long m[MAXN][MAXN];
    //二维数组存放矩阵 
    Matrix(){}
    //对数组的初始化 
    void init(long long  num[MAXN][MAXN]){
        for (int i = 0; i < MAXN; i++){
            for (int j = 0; j < MAXN; j++){
                m[i][j] = num[i][j];
            }
        }
    }
    //重载矩阵的乘法运算 
    friend Matrix operator*(Matrix &m1, Matrix &m2) {
        int i, j, k;
        Matrix temp;
        for (i = 0; i < MAXN; i++) {
            for (j = 0; j < MAXN; j++) {
                temp.m[i][j] = 0;
                for (k = 0; k < MAXN; k++)
                    temp.m[i][j] += (m1.m[i][k] * m2.m[k][j])%mod;
                temp.m[i][j] %= mod;
                //注意每一步都进行取模 
            }
        }
        return temp;
    }
    //矩阵的快速幂 
    friend Matrix quickpow(Matrix &M, long long n){
        Matrix tempans;
        //初始化为单位矩阵 
        //初始化 
        for (int i = 0; i < MAXN; i++){
            for (int j = 0; j < MAXN; j++){
                if (i == j)
                    tempans.m[i][j] = 1;
                else
                    tempans.m[i][j] = 0;
            }
        }
        //快速幂(类似整数) 
        while (n)
        {
            if (n & 1)
                tempans = tempans * M;
            //已经重载了* 
            n = n >> 1;
            M = M * M;
        }
        return tempans;
    }
};
int main()
{
    LL n;
    while (cin >> n &&n != -1)
    {
        Matrix M;
        LL mm[MAXN][MAXN] = { 1110 };
        M.init(mm);
        Matrix temp = quickpow(M, n);
        cout << temp.m[1][0] << endl;
    }
}

转载地址:http://pwnqa.baihongyu.com/

你可能感兴趣的文章
Elasticsearch 公司上市,市值近 50 亿美元
查看>>
TCP连接中time_wait在开发中的影响-搜人以鱼不如授之以渔
查看>>
Oracle数据库机出新帮助不同规模企业迈向云端
查看>>
前端通信:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布...
查看>>
Android捕获监听Home键、最近任务列表键
查看>>
微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa
查看>>
word2vec原理(三) 基于Negative Sampling的模型
查看>>
被《时代周刊》选为年度最佳发明,PS VR靠的竟然是价格
查看>>
通用唯一标识码UUID的介绍及使用。
查看>>
spring笔记--依赖注入之针对不同类型变量的几种注入方式
查看>>
Java爬虫——网易云热评爬取
查看>>
Ajax的简单学习
查看>>
机器人会消灭人类统治世界?你TM是在逗我么
查看>>
无华为,不智慧:智慧城市建设为何少不了华为?
查看>>
易到网约车许可证到手,终于能卖个好价钱了
查看>>
java是值传递还是引用传递
查看>>
阿里云推出“政务云” 助力政务机构推进互联网+
查看>>
高性能网络通信框架Netty-基础概念篇
查看>>
史上最严数据保护条例欧盟GDPR今日生效,你可能需要这版中文全文(上)
查看>>
2016中国“互联网+”创业创新大赛(华北+东北)赛区决赛成功举办 5支优胜团队晋级海口总决赛...
查看>>