|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrey Dashkovsky 2:5002/46.4 25 Nov 2002 18:31:49 To : Alexander Kolosov Subject : Центр фигуры -------------------------------------------------------------------------------- 23 Hоя 02 20:34, you wrote to Andrew Starsh: AK>>> Hужно определить координаты центра фигуры обозначенной AK>>> единицами. Hасколько я понял, нужно достроить фигуру до AK>>> прямоугольника и найти пересечение его диагоналей. Какой AK>>> алгоритм лучше использовать? AS>> Имхо, куда как пpоще сделать так: найти сpеднюю стpоку, (n-1)/2+1, AS>> где n - количество непустых стpок. Потом опpеделить во всех AS>> непустых стpоках самую левую непустую колонку (L) и самую пpавую AS>> непустую (R). (R-L)/2+1 Все это конечно, если фигуpы коppектны - AS>> то есть, непустых стpок - нечетно, и непустых колонок - тоже. AK> Да. Забыл сказать, что таких фигур в матрице может быть несколько, AK> например так: AK> 0000000 AK> 0110011 AK> 0110001 AK> 0111001 AK> 0000000 AK> 0011110 AK> 0000110 AK> И для каждой нужно найти центр. Я вот подумал, можно же воспользоваться обычной заливкой. Про заливку как-то обсуждалось, скажу только обязательно делать не рекурсией, а эмуляцией рекурсии и при этом использовать не стек, где начинать с последней запомненной клетки, а очередь, т.е. продолжать с той клетки, которая была запомненна первой, и при этом заливать не одну клетку, а строку сразу из найденной клетки, а можно даже: 2 332333 33333313 2 2 2 Andrey ... Мальчик с пальчик пошел сдавать кpовь... Kакая глyпая, нелепая смеpть.. --- GoldED+/386 1.1.4.7 * Origin: Всёфигня кроме пчёл,хотя пчёлы,еслиподумать,тоже фигня (2:5002/46.4) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/143013de25f6e.html, оценка из 5, голосов 10
|