0 / 0 / 0
Регистрация: 21.10.2019
Сообщений: 3
1

Задача "Домино"

13.11.2019, 13:26. Показов 11060. Ответов 7

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу
Домино
Вася установил на телефон игру, где в каждой клетке полоски размером 2×N записано целое число. Цель игры состоит в том, чтобы накрыть часть клеток доминошками размерами 2×1 так, чтобы сумма чисел на не покрытых доминошками клетках была минимальной.

Доминошки можно поворачивать горизонтально или вертикально, они не могут накладываться. Обязательно использовать все имеющиеся доминошки.

Формат входных данных
В первой строке вводится два числа N и K (1 ≤ N ≤ 2×105, 0 ≤ K ≤ 2×105, 0 ≤ N × K ≤ 2 × 105, N ≥ K) — размер полоски и количество имеющихся доминошек.

В следующих N строках вводятся по 2 целых числа, записанных на полоске. Числа не превосходят 109 по модулю.

Формат результата
Выведите N строк по 2 числа в каждой — описание расположения доминошек на полоске. Каждая клетка должна описываться либо числом от 1 до K — номером доминошки, которой она накрыта, либо числом 0, в случае, если она не накрыта доминошкой.

Если ответов несколько — выведите любой из них.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2019, 13:26
Ответы с готовыми решениями:

Шахматное домино
Помогите решить задачу на Python Шахматное домино Комплект шахматного домино состоит из 32...

Шахматное домино
Комплект шахматного домино состоит из 32 костяшек 2×1, каждый из квадратов которой окрашен в черный...

Шахматное домино
Комплект шахматного домино состоит из 32 костяшек 2×1, каждый из квадратов которой окрашен в черный...

Стандартный набор земного домино состоит из 28 прямоугольных плашек, разделённых на две части
Помогите пожалуйста решить :yahoo: Стандартный набор земного домино состоит из 28 прямоугольных...

Домино
При игре в домино костяшки ставят так, чтобы левый конец предыдущей имел такое же значение, что и...

7
Эксперт Python
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,104
Записей в блоге: 6
13.11.2019, 14:29 2
Лучший ответ Сообщение было отмечено Restars как решение

Решение

Интересная задачка. Думаю, жадный алгоритм поможет.
Доску с числами можно представить в виде конечного числа пар клеток, которые можно покрыть костяшками. Пары, разумеется, пересекаются. Вертикальных пар N, горизонтальных что-то вроде 2*(N-1). (Проверить!). У каждой пары есть своя сумма. Их надо собрать в структуру. Для простоты можно список, но для быстродействия желательно не просто список, а ввести какие-то указатели - чтобы по индексу клетки найти все пары, в которые она входит.
На каждой итерации покрываем пару с максимальной суммой - из оставшихся непомеченными. Помечаем "накрытые", чтобы туда не пытаться ставить - в нашей структуре. Каждое выставление костяшки помечает более одной пары клеток.
Повторяем, пока не кончатся костяшки. Bingo!
1
0 / 0 / 0
Регистрация: 21.10.2019
Сообщений: 3
13.11.2019, 14:40  [ТС] 3
Спасибо за наводку!
0
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 1
13.11.2019, 15:43 4
Не хорошо списывать Высшую Пробу))) Это решение естественно не работает, так как вы отсекается таким образом множество других вариантов и не выбираете как лучше отсечь. Есть контертест на котором это решение вообще упадет
0
Эксперт Python
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,104
Записей в блоге: 6
13.11.2019, 15:51 5
pshpis, не понял, поясните, плз.
Я уверен на 99% Допускаю на 1%, что жадный алгоритм тут не пойдёт, всё-таки я не так вдумчиво анализировал задачу, чтобы дать 100% гарантии.
Почему решение упадёт - тем более непонятно. Я бы понял, если бы в каком-то случае оно было неверным (приведите конрпример, плз) но упасть - - -
0
290 / 130 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.11.2020, 17:20 6
dondublon, 3 доминошки
10 5
7 9
3 9
3 3
0
Эксперт Python
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,104
Записей в блоге: 6
10.11.2020, 18:20 7
Miryz, маньяк.
0
290 / 130 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.11.2020, 18:52 8
dondublon, ну просто меня тоже интересует решение данной задачи.
0
10.11.2020, 18:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2020, 18:52
Помогаю со студенческими работами здесь

Домино
Дано n костяшек Домино. Напишите программу, которая определяет, можно ли из этих костяшек составить...

Домино
Добрый день! Буду очень благодарен за решение данной задачи!...

Домино
При игре в домино костяшки ставят так, чтобы левый конец предыдущей имел такое же значение, что и...

Задача "Домино": сгенерировать рандомно 28 костяшек домино
Надо написать код, который задавал бы рандомно 28 пар неповторяющихся элементов от 0 до 6. то есть...

Задача про Домино-2
Пожалуйста, помогите срочно!! Желательно код, или помогите переделать задачу про домино ранее на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru