矩陣及矩陣快速冪

一.矩陣與模板

【模板】矩陣求和

時間限制:1秒????????內存限制:128M

題目描述

給出兩個𝑛行𝑚列的矩陣,求兩個矩陣的和

輸入描述

第一行輸入兩個以空格分隔的整數𝑛,𝑚,表示矩陣的行數和列數

接下來的𝑛行,每行𝑚個以空格分隔的實數𝑇1[𝑖][𝑗],表示第一個矩陣

接下來的𝑛行,每行m個以空格分隔的實數𝑇2[𝑖][𝑗],表示第二個矩陣

1≤𝑛≤100,1≤𝑚≤100

0≤𝑇1[𝑖][𝑗]≤1000,0≤𝑇2[𝑖][𝑗]≤1000

cout << fixed << setprecision(2) << x; 或者 printf(“%.2lf”,x); 可以用來輸出小數x并保留兩位小數

輸出描述

輸出n行,每行包含𝑚個以空格分隔的實數,表示兩個矩陣相加的結果

矩陣中的實數都保留2位小數

樣例輸入

  1. 2 3
  2. 1.1 1.2 1.3
  3. 2.1 2.2 2.3
  4. 1.1 1.2 1.3
  5. 2.1 2.2 2.3

樣例輸出

  1. 2.20 2.40 2.60
  2. 4.20 4.40 4.60
#include<iostream>
using namespace std;
double a[105][105],o;
int n,m;
int main(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>o;a[i][j]+=o;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>o;a[i][j]+=o;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)printf("%.2lf ",a[i][j]);cout<<"\n";}return 0;
}

【模板】矩陣乘法

時間限制:1秒????????內存限制:128M

題目描述

給定兩個矩陣𝑎,𝑏求矩陣𝑐=𝑎?𝑏

輸入描述

第一行四個整數𝑚1,𝑛1,𝑚2,𝑛2,代表第一個矩陣和第二個矩陣的列數和行數。

接下來𝑛1行,每行m1個整數,代表第一個矩陣。

之后𝑛2行,每行m2個整數,代表第二個矩陣。

數據保證𝑚1=𝑛2。所有的輸入數據不超過100

輸出描述

輸出𝑛1行,每行𝑚2個整數,代表矩陣𝑐。

樣例輸入1

  1. 2 2 2?2
  2. 2 2
  3. 2 2
  4. 2 2
  5. 2 2

樣例輸出1

  1. 8 8
  2. 8 8

樣例輸入2

  1. 2 2 2 2
  2. 1 2
  3. 3 1
  4. 2 5
  5. 1 7

樣例輸出2

  1. 4 19
  2. 7 22
#include<iostream>
using namespace std;
const int N = 105;
int n1,n2,m1,m2;
int a[N][N],b[N][N],c[N][N];
int main(){cin>>m1>>n1>>m2>>n2;for(int i=1;i<=n1;i++)for(int j=1;j<=m1;j++)cin>>a[i][j];for(int i=1;i<=n2;i++)for(int j=1;j<=m2;j++)cin>>b[i][j];for(int i=1;i<=n1;i++){for(int j=1;j<=m2;j++){for(int k=1;k<=m1;k++){c[i][j]+=a[i][k]*b[k][j];}}}for(int i=1;i<=n1;i++){for(int j=1;j<=m2;j++){cout<<c[i][j]<<" ";}cout<<"\n";}return 0;
}

?【模板】矩陣加速

時間限制:1秒????????內存限制:128M

題目描述

已知一個數列a,滿足:

求𝑎數列的第𝑛項模10^9+7的值。

輸入描述

第一行一個整數𝑇(1≤𝑇≤100),表示詢問的次數。

以下𝑇個正整數𝑛(1≤𝑛≤2×10^9)。

輸出描述

每行輸出一個非負整數表示答案。

樣例輸入

  1. 3
  2. 6
  3. 8
  4. 10

樣例輸出

  1. 4
  2. 9
  3. 19
#include<iostream>
#include<cstring>
using namespace std;
#define ll long long
const int N = 2;
const int mod = 1e9+7;
ll a[N][N]={{1,1},{1,0}};
ll s[N][N]={{1,1},{0,0}};
ll n,T;
struct Mat//封裝好的矩陣操作
{#define int long longint a[105][105];int r, c;Mat(int _r = 0, int _c = 0){r = _r, c = _c;memset(a, 0, sizeof(a));if (c == 0)c = r; //這樣傳入一個參數可以構造方陣}void unit(){ //將自身變成單位矩陣memset(a, 0, sizeof(a));for (int i = 1; i <= r; i++)a[i][i] = 1;}friend Mat operator+(Mat x, Mat y){Mat ans(x.r, x.c);for (int i = 1; i <= x.r; i++)for (int j = 1; j <= x.c; j++)ans.a[i][j] = x.a[i][j] + y.a[i][j];return ans;}friend Mat operator-(Mat x, Mat y){Mat ans(x.r, x.c);for (int i = 1; i <= x.r; i++)for (int j = 1; j <= x.c; j++)ans.a[i][j] = x.a[i][j] - y.a[i][j];return ans;}friend Mat operator*(Mat x, Mat y){Mat ans(x.r, y.c);for (int i = 1; i <= x.r; i++)for (int j = 1; j <= y.c; j++)for (int k = 1; k <= x.c; k++)ans.a[i][j] += x.a[i][k] * y.a[k][j];return ans;}friend Mat operator%(Mat x, int t){for (int i = 1; i <= x.r; i++)for (int j = 1; j <= x.c; j++)x.a[i][j] %= t;return x;}void out(){for (int i = 1; i <= r; i++){for (int j = 1; j <= c; j++)cout << a[i][j] << ' ';cout << endl;}}Mat pow(ll b){Mat ans(r, c), a = *this;ans.unit();while (b){if (b & 1)ans = ans * a;a = a * a;b >>= 1;}return ans;}Mat pow(ll b, ll p){Mat ans(r, c), a = *this;ans.unit();while (b){if (b & 1)ans = ans * a % p;a = a * a % p;b >>= 1;}return ans;}#undef int
};
int main(){cin>>T;while(T--){cin>>n;if(n<=3){cout<<"1\n";continue;}Mat a(3),b(3);a.a[1][1]=1,a.a[1][2]=1,a.a[1][3]=1;b.a[1][1]=b.a[1][2]=b.a[2][3]=b.a[3][1]=1;a=a*b.pow(n-3,mod)%mod;cout<<a.a[1][1]<<"\n";}return 0;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912455.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

rk3588獲取探維雷達數據

可以在上期部署完 FASTLIO 的工作空間內&#xff0c;繼續部署探維雷達的驅動程序。不要問為什么不用 mid360&#xff0c;因為我手上只有探維雷達。 探維雷達的驅動鏈接&#xff1a;https://github.com/TanwayLab/tanwaylidar_view/blob/main/README.md 下載驅動并編譯 因為沿…

HTML簡介,初步了解HTML

<html> <body> <h1>我的第一個標題</h1> <p1>我的第一個段落</p1> </body> </html> 什么是HTML HTML是用來描述網頁的一種語言。 HTML指的是超文本標記語言。 HTML不是一種編程語言&#xff0c;而是一種標記語言。 標記語…

ARM集群服務器 定義

ARM集群服務器的核心定義可歸納為以下要點&#xff1a; 一、核心定義 ARM集群服務器是將?多個基于ARM架構的處理器節點?集成在單一物理機箱內&#xff0c;通過高速網絡互聯形成的分布式計算系統。每個節點均具備獨立的計算單元&#xff08;如CPU、GPU/NPU&#xff09;、內存…

進程和線程的區別?

進程&#xff08;Process&#xff09;和線程&#xff08;Thread&#xff09;是操作系統資源分配和調度的核心概念&#xff0c;它們的區別主要體現在以下幾個方面&#xff1a; 1. ??定義與資源分配?? ??進程?? 是程序的??一次執行實例??&#xff0c;擁有獨立的地址空…

AR 學習:開啟未來學習新視界?

AR 學習&#xff0c;即增強現實學習&#xff0c;是一種創新的學習方式&#xff0c;它巧妙地將增強現實技術融入到教育領域。簡單來說&#xff0c;就是利用 AR 技術把虛擬的信息和現實場景完美融合&#xff0c;為學習者打造出一個沉浸式的學習環境。AR 學習打破了傳統學習的邊界…

C++并發編程-4.unique_lock,共享鎖和遞歸鎖

本文介紹C 并發中使用的其他類型的鎖&#xff0c;包括unique_lock&#xff0c;shared_lock, 以及recursive_lock等。shared_lock和unique_lock比較常用&#xff0c;而recursive_lock用的不多&#xff0c;或盡可能規避用這種鎖。 unique_lock unique_lock和lock_guard基本用法…

stm32 freertos下基于 hal庫的模擬I2C驅動實現

一 前言 最近搞了兩個項目&#xff0c;調了一版freertos下基于hal庫得模擬I2C驅動&#xff0c;非常實用&#xff0c;直接拷貝就能用&#xff0c;這里做下記錄&#xff0c;主要用到如下四個文件&#xff1a; delay.cdelay.hi2cc.ci2cc.h 二 代碼實現 delay.c #include "…

文心大模型 4.5 系列開源首發:技術深度解析與應用指南

文心大模型 4.5 系列開源首發&#xff1a;技術深度解析與應用指南 2025 年 6 月 30 日&#xff0c;百度正式在國內領先的開源平臺 GitCode 發布文心大模型 4.5 系列開源模型。此次開源不僅覆蓋了從數億到數百億參數的多種規模&#xff0c;還在多模態理解、指令遵循、世界知識記…

智能制造——58頁智慧工廠解決方案【附全文閱讀】

適應人群為制造業企業管理者、技術人員及規劃改造團隊。主要內容是以 JetLinks IoT 平臺為基礎&#xff0c;構建涵蓋設備層、網絡層、平臺層和應用層的智慧工廠體系&#xff0c;通過多種通信協議實現設備互聯&#xff0c;利用大數據、AI 等技術實現數據采集與處理、設備全生命周…

DeepSeek16-open-webui Pipelines開發填坑

一、虛擬環境安裝 mkdir open_webui_pipelines cd open_webui_pipelines python -m venv py3119_env call py3119_env\Scripts\activate 二、下載服務以及安裝依賴 git clone https://github.com/open-webui/pipelines.git cd pipelines pip install -r requirements.txt三、…

蘭亭妙微APP 界面設計與軟件開發綜合服務商

蘭亭妙微作為 APP 界面設計公司與軟件開發公司&#xff0c;自 2011 年成立以來&#xff0c;由清華團隊主導&#xff0c;在軟件和互聯網 UI/UE 設計開發領域發展 16 年&#xff0c;積累了一定的行業經驗。 在 APP 界面設計方面&#xff0c;我們的團隊包含交互設計師、用戶體驗相…

【算法】動態規劃:1137. 第 N 個泰波那契數

1137. 第 N 個泰波那契數 簡單 相關標簽 premium lock icon 相關企業 提示 泰波那契序列 Tn 定義如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的條件下 Tn3 Tn Tn1 Tn2 給你整數 n&#xff0c;請返回第 n 個泰波那契數 Tn 的值。 示例 1&#xff1a; 輸入&am…

[附源碼+數據庫+畢業論文]基于Spring+MyBatis+MySQL+Maven+jsp實現的校園家教兼職信息交流平臺管理系統,推薦!

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本校園家教兼職信息交流平臺就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的…

vue-33(實踐練習:使用 Nuxt.js 和 SSR 構建一個簡單的博客)

實踐練習:使用 Nuxt.js 和 SSR 構建一個簡單的博客 使用 Nuxt.js 和 SSR 構建一個簡單的博客是鞏固你對服務器端渲染理解以及 Nuxt.js 如何簡化這一過程的好方法。這個練習將帶你完成設置基本博客結構、獲取數據并以用戶友好的格式展示,同時利用 SSR 的優勢來提升 SEO 和性能…

如何在 .Net 7 中使用 MQTT 客戶端

介紹 MQTT&#xff08;消息隊列遙測傳輸&#xff09;是一種輕量級消息傳遞協議&#xff0c;專為資源受限的環境而設計。MQTT 廣泛應用于物聯網 (IoT) 和機器對機器 (M2M) 通信。 本文將討論如何在 .NET 7 中實現 MQTT 消費者。我們將使用 MQTTnet 庫&#xff0c;這是 C# 中的高…

云上攻防—Docker安全容器逃逸特權模式危險掛載

前言 之前分享的是云服務安全&#xff0c;今天開始云原生安全&#xff0c;安全道路依舊很長。 什么是Docker呢&#xff0c;它是開源的容器化平臺&#xff0c;用于開發、部署和運行應用程序。它通過將應用程序及其依賴項打包在輕量級的容器中&#xff0c;實現環境一致性、快速…

2025API 開發工具Apipost 與 Apifox深度對比

在當今數字化時代&#xff0c;API 開發是構建各類軟件應用的關鍵環節。Apipost 和 Apifox 作為兩款知名的 API 開發工具&#xff0c;它們在實際開發場景中表現究竟如何呢&#xff1f;接下來&#xff0c;讓我們從多個功能點進行深入對比。 一、API 設計功能 接口定義與參數設置…

從零開始搭建Windows AI開發環境:QWQ-32B部署+Cursor插件優化實戰

文章目錄 前言1.安裝Ollama2.QwQ-32B模型安裝與運行3.Cursor安裝與配置4. 簡單使用測試5. 調用本地大模型6. 安裝內網穿透7. 配置固定公網地址總結 前言 本方案提出了一種基于Windows系統的智能化開發平臺搭建策略&#xff0c;通過融合Cursor智能編程平臺、Ollama模型運行框架…

PostgreSQL 中,若需顯示 不在 `IN` 子句列表中的數據

在 PostgreSQL 中&#xff0c;若需顯示 不在 IN 子句列表中的數據&#xff0c;可以通過以下方法實現&#xff1a; 方法 1&#xff1a;使用 NOT IN&#xff08;注意 NULL 值&#xff09; 直接篩選不包含在 IN 列表中的記錄&#xff1a; SELECT * FROM your_table WHERE your_c…

嘉訊科技:醫療信息化、數字化、智能化三者之間的關系和區別

隨著技術的不斷發展&#xff0c;醫療行業也在發生著巨大的變化。在這個過程中&#xff0c;醫療信息化、數字化、智能化成為三個重要方向。這些變化不僅帶來了醫療技術的進步&#xff0c;而且大大提高了醫療服務的質量和效率。 一、醫療信息化 醫療信息化是指醫療行業應用信息技…