|
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
||||||||||||||||||||||||||
Составление алгоритма с пояснениями к решению олимпиадной задачи (графы)19.09.2012, 22:49. Показов 2580. Ответов 4
Метки нет (Все метки)
Здравствуйте всем!
У меня есть к вам просьба, так как я хочу понять алгоритм этой задачи. Сам пытался, но что-то не получается у самого. 1) Помогите мне разобрать данную задачу. Т.е. мне нужен алгоритм всех действий, с комментариями, почему именно так. Ну или разложить задачу на блоки и объяснить их предназначение. Моя проблема заключается в том, что я понимаю как происходят все циклы, но я не понимаю смысла этих действий и идею основного ключа задачи, и вообще почему именно такой способ. Ну и надо это как-то решить. В общем говоря, я просто самостоятельно не представляю себе как решать эту задачу, и ещё + код не раскрывает всей картины 2)Или написать другой вариант решения задачи, ну и тоже с комментариями) А вот собственно вся и задача, и код (не я писал естественно) ________________________________________ ______________________________________ Описание задачи Петя и Вася играют в войну монстров. Первым ходит Вася и выставляет на поединок произвольного монстра. Затем ходит Петя, и выставляет на бой одного из своих монстров, который в состоянии победить монстра Васи. Затем наступает очередь Васи выбирать одного из своих монстров, который в состоянии победить монстра Пети. Игра продолжается до тех пор, пока на поле не окажется монстр, который непобедим для любого из монстров соперника. Может ли такая игра продолжаться бесконечно, с учётом того, что после поражения монстры не погибают, а возвращаются в “отряд” своего хозяина и могут быть сразу же снова брошены в бой? Задача Зная исходы сражения каждого монстра Пети и Васи попарно, определите, может ли бой монстров длиться бесконечно. Учтите, что ребята не делают оптимальные ходы (ходят произвольно, лишь бы их монстр побеждал в очередной схватке). Входные данные В первой строке 2 целых числа N и M через пробел (1<=N,M<=10) - количество монстров у Васи и Пети соотвественно. Далее идёт N строк по M символов “P” или “V”, которые задают матрицу A размера NxM. A[i,j] = “V”, если i-й монстр Васи побеждает j-го монстра Пети. И A[i,j] = “P”, если i-й монстр Васи проигрывает в бою j-му монстру Пети. Выходные данные Строка “FINITE”, если в любом случае бой будет завершён (обе строки без кавычек) либо “INFINITE”, если есть возможность того, что бой будет длиться бесконечно. Пример входных данных
Решение:
Также мне был ещё предложен алгоритм, к сожалению написанный трудным языком. Алгоритм: Необходимо найти цикл в ориентированном двудольном графе. Ограничения в задаче позволят решить эту задачу методом поиска в глубину с перебором всех стартовых вершин (монстров) одного из участников. Направление рёбер определяется исходя из победителя схватки (направления от проигравшего к победителю). Другой - перебирать все вершины соответствующие монстрам Васи и пускать от них волну. Далее останется проверить вернулась ли волна в исходную вершину. Прилагается программа, соответствующая первому алгоритму (поиск в глубину).
0
|
||||||||||||||||||||||||||
| 19.09.2012, 22:49 | |
|
Ответы с готовыми решениями:
4
Составление блок-схемы алгоритма и программы для решения задачи Решение олимпиадной задачи
|
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||||||||
| 20.09.2012, 06:17 | ||||||||||||
|
Там все просто (см комментарии):
См комментарии:
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
| 22.09.2012, 02:22 [ТС] | |
|
valeriikozlov, ну с кодом я более менее разобрался... но не понятно, почему именно такой сделали волну fill. Можешь ли ты, если не сложно, предложить мне другой вариант решения задачи?
0
|
|
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||
| 23.09.2012, 16:10 | ||
|
- перебираем вершины Васи, и ищем вершины которые еще не посещали. Запускаем волну от такой вершины с очередной меткой (каждая волна со своей меткой). Вершины с более ранними метками пропускаем, с нулевыми метками: помечаем текущей меткой и включаем в очередь. Если вдруг встречаем вершину с меткой, равной очередной метке, то можно выводить INFINITE и заканчивать программу. После каждой волны метки в массивах bv,bp не стираем. По окончании вершин Васи выводим FINITE. Реализовать сможете?
0
|
||
|
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 18
|
|
| 23.09.2012, 22:45 [ТС] | |
|
valeriikozlov,думаю, смогу. В течение понедельника поковыряюсь, + вторник, если понадобиться.
0
|
|
| 23.09.2012, 22:45 | |
|
Помогаю со студенческими работами здесь
5
Решение олимпиадной задачи Решение олимпиадной задачи Решение олимпиадной задачи (ч.2) Задачи по дискретке, желательно с пояснениями
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|