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


    送分大水题

    题目大意

    给你 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('
    ');
    			
    			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('
    ');
    			
    			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('
    ');
    			
    			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('
    ');
    			
    			continue;
    		}
    	}
    	
    	return 0;
    }
    
  • 相关阅读:
    iOS的文字自适应
    指向指针的指针
    NSString的创建
    Foundation-常用结构体
    Foundation summary
    成员变量补充
    Block^
    Protocol
    Category-分类
    李明杰要在广州开课啦
  • 原文地址:https://www.cnblogs.com/Sakura-TJH/p/jzoj_6166.html
Copyright © 2020-2023  润新知