結果
問題 | No.2441 行列累乗 |
ユーザー |
![]() |
提出日時 | 2023-09-13 21:44:20 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 934 bytes |
コンパイル時間 | 685 ms |
コンパイル使用メモリ | 83,532 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 06:04:55 |
合計ジャッジ時間 | 1,609 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>#include <string>#include <set>#include <map>#include <vector>#include <queue>#define ll long long#define db doubleusing namespace std;ll tt;struct mtx {ll len,a[10][10];mtx operator * (const mtx &x) const {mtx res;res.len = len;for (ll i = 0;i < len;i++) {for (ll j = 0;j < len;j++) {ll y = 0;for (ll u = 0;u < len;u++) {y += (a[i][u] * x.a[u][j]);}res.a[i][j] = y;}}return res;}void prt() {for (ll i = 0;i < len;i++) {for (ll j = 0;j < len;j++) {printf("%lld ",a[i][j]);}printf("\n");}}};void solve() {mtx val,ans;val.len = ans.len = 2;for (ll i = 0;i < 2;i++) {for (ll j = 0;j < 2;j++) {scanf("%lld",&val.a[i][j]);}}ans = val * val * val;ans.prt();}int main() {tt = 1;while(tt) {solve();tt--;}return 0;}