generuješ si obdélníky délky 1x1 až NxN
pak je posouváš do všech míst kam to jde
a pro každé posunutí sečteš prvky uvnitř obdélníku.
A ty hledáš největší obdélníky, který má ten součet menší nebo roven maxCost
2 | No.2 Revision |
generuješ si obdélníky délky 1x1 až NxN
pak je posouváš do všech míst kam to jde
a pro každé posunutí sečteš prvky uvnitř obdélníku.
A ty hledáš největší obdélníky, obdélník, který má ten součet menší nebo roven maxCost
3 | No.3 Revision |
EDIT Níže uvedené řešení není O(n^4)
generuješ obdélníky délky 1x1 až NxN
pak je posouváš do všech míst kam to jde
a pro každé posunutí sečteš prvky uvnitř obdélníku.
A ty hledáš největší obdélník, který má ten součet menší nebo roven maxCost
4 | No.4 Revision |
EDIT2 Nejprve je to potřeba předpočítat tak, že si pro každý obdelník spočítáš součet plochy vlevo nad ním.
A = C+B-D
A pak si projdeš všechny obdélníky tím způsobem, že si každý obdélník spočítáš takto:
žlutá plocha = D - C - B + A
EDIT Níže uvedené řešení není O(n^4)
generuješ obdélníky délky 1x1 až NxN
pak je posouváš do všech míst kam to jde
a pro každé posunutí sečteš prvky uvnitř obdélníku.
A ty hledáš největší obdélník, který má ten součet menší nebo roven maxCost