Недавно столкнулся с задачей где нужно было посчитать количество квадратов k на k таких что количество различных чисел в подматрице <= q. Сделать это нужно для каждого k от 1 до n. В этой задаче n <= 1500, q <= 10. Я смог решить эту версию задачи. Немного подумав я понял то, что при q <= 1500, я не могу решить эту задачу. Не могли бы вы дать какие-то hints или решение на константный k? В общем я хочу научиться считать количество различных на подматрице. Спасибо!
Is there a bound on the range of numbers the matrix can have?
yes , in problem it says that there is n^2 distinct numbers in mateix
bruh
I don't get well your problem, is the problem is "for a given $$$k$$$, find the number of distinct submatrix of length $$$k*k$$$ we can have" or is it "find the maximum/minimum number of distinct elements in a submatrix of length $$$k×k$$$"?
You can just use using hashing by hashing every submatrix of length $$$k$$$, the result will be the size of the set of hashed values. It's fine for a given $$$k$$$, but the complexity for each $$$k$$$ is $$$O(n*n^2)$$$, which is bad for $$$n = 1500$$$
You can use RMQ data structures like 2D sparse table or more complicated like segment and Fenwick. The complexity for $$$k$$$ from $$$1$$$ to $$$n$$$, is $$$O(n^2logn)$$$