Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <algorithm>#define MOL 1000000007using namespace std;vector<int> rAdd = { -2, -2, -1, -1, 1, 1, 2, 2 };vector<int> cAdd = { -1, 1, -2, 2, -2, 2, -1, 1 };vector<vector<long long>> nextPos(64, vector<long long>(64, 0));int atMat(int r, int c) {return (r - 1) * 8 + c - 1;}void initMat() {int u, v, r, c, r1, c1;for (r = 1; r <= 8; ++r)for (c = 1; c <= 8; ++c) {u = atMat(r, c);for (int i = 0; i < 8; ++i) {r1 = r + rAdd[i];c1 = c + cAdd[i];if (r1 > 0 && r1 <= 8 && c1 > 0 && c1 <= 8) {v = atMat(r1, c1);nextPos[u][v] = 1;}}}}vector<vector<long long>> matrixmul(vector<vector<long long>>& m1, vector<vector<long long>>& m2){