ce
查看原帖
ce
602624
___njr___楼主2023/1/26 12:10
#include<bits/stdc++.h>
using namespace std;

int n;
class juzhen {
	long long v[101][101];
public:
	inline juzhen operator*= (juzhen b) {
		juzhen c;
		for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j)for (int k = 0; k < n; ++k) c.v[i][j] += v[i][k] * b.v[k][j];
		return c;
	}
	inline istream& operator >> (istream& in, juzhen a) {
		for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j) {
			in >> a.v[i][j];
		}
		return in;
	}
	inline ostream& operator << (ostream& in, juzhen a) {
		for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j) {
			in << a.v[i][j]<<' ';
			if (j == n - 1)cout << endl;
		}
		return in;
	}
};
inline juzhen ksm(juzhen a, int k) {
	juzhen ans;
	while (k) {
		if (k & 1)ans *= a;
		a *= a;
		k >>= 1;
	}
	return ans;
}
int main() {
	juzhen a;
	int k;
	cin >> n >> k;
	cin >> a;
	cout << ksm(a,k);
	return 0;
}
2023/1/26 12:10
加载中...