题目:
计算出的答案为:23769050146281024
以下为C++代码
#include <bits/stdc++.h>
using namespace std;
#define POW2(X) (1 << (X))
#define CKBIT(S, X) (((S)&POW2(X)) != 0)
const double pi = acos(-1.0);
const double eps = 1e-11;
template <class T> inline void ckmin(T & a, T b) {
a = min(a, b);
}
template <class T> inline void ckmax(T & a, T b) {
a = max(a, b);
}
template <class T> inline T sqr(T x) {
return x * x;
}
#define SIZE(A) ((int)A.size())
#define LENGTH(A) ((int)A.length())
#define MP(A, B) make_pair(A, B)
#define PB(X) push_back(X)
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define REP(i, a) for (int i = 0; i < (a); ++i)
#define ALL(A) A.begin(), A.end()
template <class T> int CMP(T a[], const T b[], int n) {
return memcmp(a, b, n * sizeof(T));
}
template <class T> void COPY(T a[], const T b[], int n) {
memcpy(a, b, n * sizeof(T));
}
template <class T> void SET(T a[], int val, int n) {
memset(a, val, n * sizeof(T));
}
using uint = unsigned int;
using int64 = long long;
using uint64 = unsigned long long;
using ipair = pair<int, int>;
using VI = vector<int>;
using VD = vector<double>;
using VVI = vector<VI>;
using VS = vector<string>;
const int MOD = 1000000007;
using ll = long long;
using namespace std;
int main() {
ll dots = 1;
int N = 12;
cout << endl;
unordered_map<ll, ll> h, v;
while (N-- > 0) {
unordered_map<ll, ll> ht, vt;
ht[1] = 6 * dots;
vt[3] = vt[5] = vt[1] = 2 * dots;
dots *= 9;
for (auto & p : v) {
if (p.first % 4 == 1) {
int d = (p.first - 1) * 9;
ht[d + 1] += p.second;
ht[d + 3] += p.second;
ht[d + 5] += p.second;
}
else {
int d = (p.first + 1) * 9;
ht[d - 1] += p.second;
ht[d - 3] += p.second;
ht[d - 5] += p.second;
}
}
for (auto & p : h) {
if (p.first % 4 == 1) {
int d = (p.first - 1) * 9;
vt[d + 1] += p.second;
vt[d + 11] += p.second;
vt[d + 13] += p.second;
}
else {
int d = (p.first + 1) * 9;
vt[d - 1] += p.second;
vt[d - 11] += p.second;
vt[d - 13] += p.second;
}
}
h = move(ht);
v = move(vt);
}
ll res = 0;
for (auto & p : h) res += p.first * p.second;
for (auto & p : v) res += p.first * p.second;
cout << res;
}