0
点赞
收藏
分享

微信扫一扫

SPOJ VECTAR1 - Matrices with XOR property(统计)


大体题意:

问你有多少个矩阵满足(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!



举报

相关推荐

0 条评论