|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
Шахматный конь27.05.2019, 21:13. Показов 10132. Ответов 31
Добрый день
Нужно поправить код, но не знаю как. Такая задача: Одно движение шахматного прыгуна (лошади) - это прыжок на два поля вертикально или горизонтально, а затем на один квадрат под прямым углом. Такое движение создает букву «Л». Все поля, доступные одним движением перемычки, отмечены крестиком на диаграмме ниже. Рассмотрим неограниченную шахматную доску, на которой стоит несколько перемычек и на которой выделено одинаковое количество целевых полей. После выполнения определенного количества ходов (описанных выше) перемычки должны находиться на целевых полях. Как это сделать, выполнив минимальное количество ходов? Задача Напишите программу, которая для заданного распределения выходных N перемычек и N целевых полей найдет минимальное количество ходов, после которого перемычки окажутся на целевых полях. Входные данные В первой строке стандартного ввода содержится целое число D (1 ≤D ≤ 20), обозначающее количество наборов данных, размещенных в следующих строках. Каждый набор состоит из строки, содержащей количество N перемычек (1≤N≤ 1000), и из следующих 2N строк, содержащих координаты выходных полей перемычек (N строк), а затем расположение целевых полей (следующие N строк). Каждая из 2N строк, содержащих координаты поля (выходной или целевой), содержит две, разделенные одним пробелом целые числа x, y (-2000000000≤x, y ≤ 2 000 000 000), обозначающие номера столбца и строки, соответственно, на пересечении какого поля. Выходные данные Стандартный выходной файл должен содержать D задач для последующих наборов данных. Каждое решение должно быть записано в одну строку, в которой должно быть одно положительное целое число K - обозначающее минимальное количество движений, необходимое для перемещения всех перемычек из начальной позиции в целевую позицию. //4 //1 //5 5 //5 6 //2 //0 0 //1 0 //0 1 //1 1 //13 //4 1 //4 2 //3 3 //0 7 //4 3 //6 1 //3 5 //6 3 //5 4 //2 7 //3 7 //5 6 //7 5 //1 1 //3 0 //4 0 //1 4 //3 2 //0 7 //3 5 //7 3 //6 6 //7 5 //5 7 //7 6 //6 7 //15 //0 0 //0 1 //1 1 //2 0 //0 3 //3 3 //5 2 //7 0 //1 7 //3 6 //6 4 //7 4 //7 5 //6 7 //7 7 //1 1 //0 3 //4 0 //3 2 //2 3 //6 1 //0 7 //1 6 //3 5 //5 3 //4 4 //7 3 //4 7 //5 7 //7 7 правильный ответ: //3 //4 //18 //24 Полазил по Гуглу, по изучал информацию и получилось сделать только для стандартной доски 8х8(решил начать с простого и дойти со временем до решения). У меня не получается сделать неограниченную шахматную доску. А как сделать это что-то не придумаю? Если можете помочь, был бы очень благодарен вам) Вот мой код:
Ну очееень нужно)))
0
|
||||||
| 27.05.2019, 21:13 | |
|
Ответы с готовыми решениями:
31
Шахматная доска и шахматный конь Может ли шахматный конь перейти в указанную клетку доски? Проверить не угрожает ли данный шахматный конь заданному полю |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 27.05.2019, 21:33 | |||
|
Добавлено через 8 минут valid() не нужно
0
|
|||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
| 27.05.2019, 21:36 [ТС] | ||||||
Какое и где? Если это должна быть неограниченная доска(по - и по +) Добавлено через 1 минуту Уже увидел сообщения сверху)
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 21:38 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 27.05.2019, 21:43 [ТС] | |
|
Чтобы <numeric_limits<int>::max - row[i]) заработал нужно добавить template< class T > class numeric_limits; ?
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 21:46 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 27.05.2019, 21:48 [ТС] | |
|
Добавил
Всё равно ошибка Добавлено через 1 минуту После max должны быть ()
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 27.05.2019, 21:49 | |||
|
Добавлено через 25 секунд Это максимальное положительное значение для int Добавлено через 44 секунды
0
|
|||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 27.05.2019, 21:51 [ТС] | |
|
Тогда ответ получается int_max
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 21:53 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
| 27.05.2019, 21:54 [ТС] | ||||||
|
А как передать параметр n в BFS()?
Добавлено через 32 секунды
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 27.05.2019, 21:59 | |||||||
0
|
|||||||
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
| 27.05.2019, 22:03 [ТС] | ||||||
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 22:04 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
|
| 27.05.2019, 22:15 [ТС] | |
|
Для второго случая ответ получается 2 , а нужно чтобы было 4.
Кони должны встать на заданные поля, но какой конь может встать на какое поле - неважно: первый на первое поле или на второе и второй на любое другое свободное, и т.д. Расстановка для второго случая: Код: 3! 0 0 0 0 0 2! 0 0 0 0 0 1! 0 h 0 0 0 0! 0 h 0 0 0 -1! 0 0 0 0 0 -2! 0 0 0 0 0 ---------------- -1 0 2 3 4 Первый ход каждого коня: Код: 3! 0 0 0 0 0 2! 0 0 0 1 0 1! 0 h 0 0 0 0! 0 h 0 0 0 -1! 0 0 0 1 0 -2! 0 0 0 0 0 ---------------- -1 0 2 3 4 Второй ход каждого коня: Код: 3! 0 0 0 0 0 2! 0 0 0 1 0 1! 0 h 2 0 0 0! 0 h 2 0 0 -1! 0 0 0 1 0 -2! 0 0 0 0 0 ---------------- -1 0 2 3 4 Итого - 4 хода. Вход //2 //0 0 //1 0 //0 1 //1 1 Виход 4 Добавлено через 3 минуты А для первого набора данных все работает прекрасно
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 22:16 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
| 27.05.2019, 22:20 [ТС] | ||||||
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 22:22 | |
|
Покажи код
0
|
|
|
1 / 1 / 0
Регистрация: 05.04.2019
Сообщений: 110
|
||||||
| 27.05.2019, 22:23 [ТС] | ||||||
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2019, 22:27 | |
|
0
|
|
| 27.05.2019, 22:27 | |
|
Помогаю со студенческими работами здесь
20
Может ли шахматный конь за один ход попасть из одного поля в другое?
Шахматный конь за один ход может переместиться с одного заданного поля на другое(каждое поле задано двумя коо Выясните, может шахматный конь за один ход попасть с ячейки с координатами (x1, y1) в ячейку с координатами (x2, y2) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|