题意简述
有一个$n\times m$的矩阵$a$,每个数是$[1,n\times m]$之间的整数,并且互不相同。然后有$Q$次询问,每次询问给定$x,y$,问你有多少个数满足:它在行中是第$x$大,在列中是第$y$大。
$n,m<=1000,Q<=5e5$。
思路框架
设$x[i][j]$表示$a[i][j]$在第$i$行里第几大,$y[i][j]$表示$a[i][j]$在第$j$列第几大。
设$ans[i][j]$表示在行里排第$i$大,列里排第$j$大的数有多少。对于所有$i,j$,$ans[x[i][j]][y[i][j]$++。
每次询问输出$ans[x][y]$即珂。$O(nmlog(n+m)+Q)$
$x[i][j]$和$y[i][j]$,您珂以用一个$lower_bound$解决,或者像我一样$sb$的写一个树状数组。
代码
1 |
|