送分大水题(高维前缀和)(高维差分)

送分大水题

题目大意

给你 n 个 m 维向量。
然后每次询问给出一个 m 维向量,问你有多少对向量满足条件。
条件有四种:每一维最大值都大于等于或小于等于一个值,每一维最小值都小于等于或大于等于一个值。

思路

首先看到这种鬼题我们发现其实可以用高维的一些数据结构啊,什么的。
但由于有 10 维,这个码量就变得十分的恐怖。
(当然可能有什么简单的写法,但是我不会)
第一第二个询问其实就分别跑一个高维前缀和高维后缀就可以了。
就是处理出有多少个数满足大于某个向量或小于。
那第一第二你其实把大于的两两组合,小于的两两组合,就分别是两问的答案了。

接着我们来看第三第四个询问。
我们考虑延续求第一第二问的思路。
发现这个 max 和这个 min 不太好搞,那我们考虑从第一问推到第三问,从第二问推到第四问。
首先我们求出的是 max(Ai,Bi)<=Ci 的,那我们考虑要怎么得到 max(Ai,Bi)>=Ci 的。
(由于它是要每一项都满足,所以你不能是一个满足比它大,另一个随便选,它的 max 可能是由两个数分别贡献才比 Ci 大或等于的)
(我比赛的时候就是因为这样就锅了)
那我们可以考虑先求出 max(Ai,Bi)=Ci,通过跑后缀和得到 max(Ai,Bi)>=Ci

那怎么得到呢?不难想到用差分,那就是高维差分。
然后第二个求第四个也是同样道理。

然后讲一讲高维的前缀和差分要怎么搞。
具体可以看看代码,你其实就可以想一维的,再想二维的,然后你就可以推广出来了。
然后记得差分不要用容斥的那个,你十维搞容斥会烦死,你就用类似求前缀和的方式减。
然后你注意一下差分枚举的顺序就可以了。
具体差分的实现可以看看我的代码。

然后自己看看数据就知道要快读快输。
(我这种**就不知道)

然后,由于我没有将求前缀啊,求后缀啊这些打包,所以。。。
你懂的,八百多行的代码。
所以——

代码

#pragma GCC optimize(2) #include<cstdio> #define ll long long using namespace std; int n, m, a[11], q, op, re, now; int num[4][4][4][4][4][4][4][4][4][4]; int val[4][4][4][4][4][4][4][4][4][4]; ll ans1[4][4][4][4][4][4][4][4][4][4]; ll ans2[4][4][4][4][4][4][4][4][4][4]; ll ans3[4][4][4][4][4][4][4][4][4][4]; ll ans4[4][4][4][4][4][4][4][4][4][4]; ll ans; char c; char buf[1<<23], *p1=buf, *p2=buf, obuf[1<<23], *O=obuf; #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1<<21, stdin), p1 == p2) ? EOF : *p1++) int read() { re = 0; c = getchar(); while (c < '0' || c > '9') c = getchar(); while (c >= '0' && c <= '9') { re = (re << 3) + (re << 1) + c - '0'; c = getchar(); } return re; } int read1() { c = getchar(); while (c < '0' || c > '9') c = getchar(); return c - '0'; } ll write(ll x) { if (x > 9ll) write(x / 10ll); putchar(x % 10 + '0'); } int main() { freopen("water.in", "r", stdin); freopen("water.out", "w", stdout); n = read(); m = read(); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; j++) { a[j] = read1() - 1; } num[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]++; val[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]++; } //算出第一个第二个答案(直接前缀后缀) for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 1; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 - 1]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10 + 1]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 1; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5][a6][a7][a8][a9 - 1][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9 + 1][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 1; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5][a6][a7][a8 - 1][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8 + 1][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 1; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5][a6][a7 - 1][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7 + 1][3 - a8][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 1; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5][a6 - 1][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6 + 1][3 - a7][3 - a8][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 1; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4][a5 - 1][a6][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5 + 1][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 1; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3][a4 - 1][a5][a6][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3][3 - a4 + 1][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 1; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2][a3 - 1][a4][a5][a6][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2][3 - a3 + 1][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10]; } for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 1; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1][a2 - 1][a3][a4][a5][a6][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1][3 - a2 + 1][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10]; } for (int a1 = 1; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += num[a1 - 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; val[3 - a1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10] += val[3 - a1 + 1][3 - a2][3 - a3][3 - a4][3 - a5][3 - a6][3 - a7][3 - a8][3 - a9][3 - a10]; } //这一部分杠掉的是求后缀,但是我当时卡时间把就把它放到前面求前缀一起了 // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3 - 1; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 + 1]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3 - 1; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5][a6][a7][a8][a9 + 1][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3 - 1; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5][a6][a7][a8 + 1][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3 - 1; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5][a6][a7 + 1][a8][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3 - 1; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5][a6 + 1][a7][a8][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3 - 1; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4][a5 + 1][a6][a7][a8][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3 - 1; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3][a4 + 1][a5][a6][a7][a8][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3 - 1; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2][a3 + 1][a4][a5][a6][a7][a8][a9][a10]; // // for (int a1 = 3; a1 >= 0; --a1) // for (int a2 = 3 - 1; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1][a2 + 1][a3][a4][a5][a6][a7][a8][a9][a10]; // // for (int a1 = 3 - 1; a1 >= 0; --a1) // for (int a2 = 3; a2 >= 0; --a2) // for (int a3 = 3; a3 >= 0; --a3) // for (int a4 = 3; a4 >= 0; --a4) // for (int a5 = 3; a5 >= 0; --a5) // for (int a6 = 3; a6 >= 0; --a6) // for (int a7 = 3; a7 >= 0; --a7) // for (int a8 = 3; a8 >= 0; --a8) // for (int a9 = 3; a9 >= 0; --a9) // for (int a10 = 3; a10 >= 0; --a10) // val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += val[a1 + 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; //先记录答案,准备搞第三第四个答案 for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) { now = num[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; ans1[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] = 1ll * now * (now - 1) >> 1; ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] = ans1[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; now = val[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; ans2[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] = 1ll * now * (now - 1) >> 1; ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] = ans2[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; } //搞第三个答案:搞出第一个答案的差分数组 得到 max(Ai,Bi)=Ci 的个数 for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 1; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 - 1]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 1; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9 - 1][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 1; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5][a6][a7][a8 - 1][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 1; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5][a6][a7 - 1][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 1; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5][a6 - 1][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 1; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4][a5 - 1][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 1; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3][a4 - 1][a5][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 1; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2][a3 - 1][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 1; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1][a2 - 1][a3][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 1; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans3[a1 - 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; //跑后缀得到第三个的答案 max(Ai,Bi)>=Ci 的个数 for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3 - 1; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 + 1]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3 - 1; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9 + 1][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3 - 1; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5][a6][a7][a8 + 1][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3 - 1; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5][a6][a7 + 1][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3 - 1; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5][a6 + 1][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3 - 1; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4][a5 + 1][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3 - 1; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3][a4 + 1][a5][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3 - 1; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2][a3 + 1][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 3; a1 >= 0; --a1) for (int a2 = 3 - 1; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1][a2 + 1][a3][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 3 - 1; a1 >= 0; --a1) for (int a2 = 3; a2 >= 0; --a2) for (int a3 = 3; a3 >= 0; --a3) for (int a4 = 3; a4 >= 0; --a4) for (int a5 = 3; a5 >= 0; --a5) for (int a6 = 3; a6 >= 0; --a6) for (int a7 = 3; a7 >= 0; --a7) for (int a8 = 3; a8 >= 0; --a8) for (int a9 = 3; a9 >= 0; --a9) for (int a10 = 3; a10 >= 0; --a10) ans3[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans3[a1 + 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; //求第四个跟求第三个同一个道理 for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4 - 1; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 + 1]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4 - 1; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9 + 1][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4 - 1; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5][a6][a7][a8 + 1][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4 - 1; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5][a6][a7 + 1][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4 - 1; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5][a6 + 1][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4 - 1; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4][a5 + 1][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4 - 1; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3][a4 + 1][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4 - 1; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2][a3 + 1][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4 - 1; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1][a2 + 1][a3][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4 - 1; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] -= ans4[a1 + 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 1; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10 - 1]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 1; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9 - 1][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 1; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5][a6][a7][a8 - 1][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 1; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5][a6][a7 - 1][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 1; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5][a6 - 1][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 1; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4][a5 - 1][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 1; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3][a4 - 1][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 1; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2][a3 - 1][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 0; a1 < 4; ++a1) for (int a2 = 1; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1][a2 - 1][a3][a4][a5][a6][a7][a8][a9][a10]; for (int a1 = 1; a1 < 4; ++a1) for (int a2 = 0; a2 < 4; ++a2) for (int a3 = 0; a3 < 4; ++a3) for (int a4 = 0; a4 < 4; ++a4) for (int a5 = 0; a5 < 4; ++a5) for (int a6 = 0; a6 < 4; ++a6) for (int a7 = 0; a7 < 4; ++a7) for (int a8 = 0; a8 < 4; ++a8) for (int a9 = 0; a9 < 4; ++a9) for (int a10 = 0; a10 < 4; ++a10) ans4[a1][a2][a3][a4][a5][a6][a7][a8][a9][a10] += ans4[a1 - 1][a2][a3][a4][a5][a6][a7][a8][a9][a10]; q = read(); while (q--) { op = read(); for (int i = 1; i <= m; ++i) { a[i] = read1(); a[i]--; } if (op == 1) { ans = ans1[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]; write(ans); putchar('\n'); continue; } if (op == 2) { ans = ans2[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]; write(ans); putchar('\n'); continue; } if (op == 3) { ans = ans3[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]; write(ans); putchar('\n'); continue; } if (op == 4) { ans = ans4[a[1]][a[2]][a[3]][a[4]][a[5]][a[6]][a[7]][a[8]][a[9]][a[10]]; write(ans); putchar('\n'); continue; } } return 0; }

__EOF__

本文作者あおいSakura
本文链接https://www.cnblogs.com/Sakura-TJH/p/jzoj_6166.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   あおいSakura  阅读(108)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示