![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
здравствуйте не могли бы вы мне подсказать, как решать такую задачу
у нас есть массив NxN который заполнен нулями и единицами нужно найти максимальное количество единиц, которые "соединены" Код:
какой алгоритм в данном случае следует использовать? заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
БФС или ДФС на Ваш вкус. Запускать с каждой найденой неотмеченой единички.
|
![]() |
![]() |
![]() |
#3 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Хм...я попробовал обход...
1)Бежим по массиву,пока не наткнемся на 1(по строкам,допустим). 2)Запускаем Код:
Не корректно работает,потому что на проверять равны в while равны ли i и j 0,это первое,и наверно надо сохранять предыдущий элемент(с которого мы ушли...).Чуть позже допишу.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() Последний раз редактировалось Скарам; 15.11.2009 в 13:01. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
а вообще эта задача на графы что ли?
Программирование - это великое искусство... Такое же как например и живопись!
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
![]()
некорректно работает
Программирование - это великое искусство... Такое же как например и живопись!
![]() |
![]() |
![]() |
![]() |
#6 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Ну вообще это работа с матрицами скорее всего,на матрицу смежностей однонаправленного графа похоже,но таких задач на них я не встречал.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
Задача старая, как мир. И до боли примитивная - никаких выдумок не надо, в одном знакомом мне лицее эту задачу 8класникам на 4 задавали, тоесть для проверки "полный ноль-не полный ноль". Объясняю более доступно и подробно. Заводим дополнительную матрицу для отмечения уже проверенных клеток. Проходим всю основную матрицу. Каждый раз, когда в основной матрице попадаем в клетку, которая в дополнительной еще не отмечена, а в основной содержит единицу, запускаем с нее БФС (если быть более точным - кажеться, эта вариация называеться "алгоритм Ли") и подсчитываем число клеток в связной области. Одновременно флагаем все пройденные клетки, что бы не проверять одну область несколько раз. Если в области больше клеток, чем текущий ответ, то ответом становиться количество клеток в области. Ответ после обхода - верный.
|
![]() |
![]() |
![]() |
#8 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Решил эту задачку влоб для матрицы 3х3 в принципе поменять матрицу и s(это размерность матрицы) и можно считать для любой.Смысл в том,что мы нашли 1 и пошли от неё на все 4 стороны,учитывая где мы находимся(в углу матрицы,середине,где-то с краю(всего 9 вариантов местонахождения)...нудно,но реально и понятно)).Знание crtl+c и ctrl+v спасает при написании такого алгоритма)))
Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#10 | |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]() Цитата:
Код:
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с массивом | GaSST | Microsoft Office Excel | 5 | 04.06.2009 07:57 |
Найти максимальный элемент матрицы и вставить правее него столбец из нулей и ниже него строку из нулей. | Romer9999 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 28.11.2008 11:28 |
Получите последовательность b1...bn из нулей и единиц | Я_Студент | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.07.2008 12:40 |
работа с массивом | begemotikdin | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.06.2008 21:40 |