大体题意:
问你有多少个矩阵满足(i1,j1) and (i2,j2), if (i1^j1) > (i2^j2) then A[i1][j1] > A[i2][j2]
对1e9+7取模
思路:
当i1^j1 == i2^j2 的时候不能比较大小, 全排列就好了。
因此问题转换为有多少个i1^j1 == i2^j2 的位置,全排列乘起来就好了
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#define Siz(x) (int)x.size()
using namespace std;
typedef long long LL;
const int mod = 1e9+7;
int n,m,T;
int vis[2048];
LL JIE[2048];
void init(){
JIE[0] = 1;
for (int i = 1; i < 2048 ;++i){
JIE[i] = (JIE[i-1] * i) % mod;
}
}
int main(){
scanf("%d",&T);
init();
while(T--){
scanf("%d %d",&n, &m);
memset(vis,0,sizeof vis);
for (int i = 1; i <= n; ++i){
for (int j = 1; j <= m; ++j){
vis[i^j]++;
}
}
LL ans = 1LL;
for (int i = 0; i < 2048; ++i){
if (vis[i]) ans = (ans*JIE[vis[i]]) % mod;
}
printf("%lld\n",ans);
}
return 0;
}
VECTAR1 - Matrices with XOR property
no tags
Imagine A is a NxM matrix with two basic properties
1) Each element in the matrix is distinct and lies in the range of 1<=A[i][j]<=(N*M)
2) For any two cells of the matrix, (i1,j1) and (i2,j2), if (i1^j1) > (i2^j2) then A[i1][j1] > A[i2][j2] ,where
1 ≤ i1,i2 ≤ N
1 ≤ j1,j2 ≤ M.
Given N and M , you have to calculatethe total number of matrices of size N x M which have both the properties
mentioned above.
Input format:
First line contains T, the number of test cases. 2*T lines follow with N on the first line and M on the second, representing the number of rows and columns respectively.
Output format:
Output the total number of such matrices of size N x M. Since, this answer can be large, output it modulo 10^9+7
Constraints:
1 ≤ N,M,T ≤ 1000
SAMPLE INPUT
1
2
2
SAMPLE OUTPUT
4
Explanation
The four possible matrices are:
[1 3] | [2 3] | [1 4] | [2 4]
[4 2] | [4 1] | [3 2] | [3 1]
Imagine A is a NxM matrix with two basic properties
1) Each element in the matrix is distinct and lies in the range of 1<=A[i][j]<=(N*M)
2) For any two cells of the matrix, (i1,j1) and (i2,j2), if (i1^j1) > (i2^j2) then A[i1][j1] > A[i2][j2] ,where
1 ≤ i1,i2 ≤ N
1 ≤ j1,j2 ≤ M.
^ is Bitwise XOR
Given N and M , you have to calculatethe total number of matrices of size N x M which have both the properties
mentioned above.
Input format:
First line contains T, the number of test cases. 2*T lines follow with N on the first line and M on the second, representing the number of rows and columns respectively.
Output format:
Output the total number of such matrices of size N x M. Since, this answer can be large, output it modulo 10^9+7
Constraints:
1 ≤ N,M,T ≤ 1000
SAMPLE INPUT
1
2
2
SAMPLE OUTPUT
4
Explanation
The four possible matrices are:
[1 3] | [2 3] | [1 4] | [2 4]
[4 2] | [4 1] | [3 2] | [3 1]
Submit solution!