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

Требуется написать программу, которая выполняет дешифровку заданного шифра

05.12.2019, 12:31. Показов 837. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сложный шифр

Для передачи сообщения по открытому каналу связи шифровальщики придумали сложный шифр. Шифр состоит из N различных чисел, записанных в одну строку через пробелы. Дешифрованное сообщение состоит из K чисел, которые являются номерами исходных чисел, разбивающих исходное сообщение на K частей (подпоследовательностей), так что сумма минимумов каждой подпоследовательности будет максимальна.

Итак, от Вас требуется написать программу, которая выполняет дешифровку заданного шифра.

Формат ввода
Первая строка входного файла содержит два разделенных пробелом натуральных числа N и К (1 ≤ K < N ≤ 300).

Вторая строка входного файла содержит зашифрованное сообщение –N разделенных пробелом целых различных натуральных чисел а1, а2, а3… аn (1 ≤ ai ≤ 10).

Формат вывода
Выходной файл в первой строке содержит максимальную сумму К слагаемых, которые являются минимумами каждой части разбиения последовательности на K частей.

Во второй строке выходного файла содержится дешифрованное сообщение из разделенных пробелом К натуральных чисел – номеров чисел в последовательности, которые завершают каждую из подпоследовательностей зашифрованного сообщения.

Пример
Ввод
10 5
1 10 2 8 9 3 5 4 7 6
Вывод
27
3 4 5 8 10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2019, 12:31
Ответы с готовыми решениями:

Требуется написать программу, которая для заданного количества коробок N будет определять число возможных «хороших» стоп
Драгоценные камни Гномы, жители страны Мории, добывают драгоценные камни трех видов — поделочные...

Написать программу, которая выполняет вычисления по формуле
х=(а*2+b*c+5)(a*d+3) вот что получилось: .model small .stack 100h .data a db ? b db ? c db ?...

Написать программу которая осуществляет расшифровку шифра Вижинера при помощи процедур
Написать программу которая осуществляет расшифровку шифра Вижинера при помощи процедур

Написать файл-программу, которая выполняет следующее действие
Дано действительное число x. Вычислить x -x3/3! + x5/5! - x7/7! + x9/9! - x11/11! + x13/13!...

6
Status 418
Эксперт Python
3878 / 2154 / 575
Регистрация: 26.11.2017
Сообщений: 5,037
Записей в блоге: 2
05.12.2019, 15:26 2
makarworld, что конкретно не получается?
0
2903 / 1553 / 624
Регистрация: 19.03.2019
Сообщений: 5,153
05.12.2019, 17:17 3
eaa, если не сложно, поясни, что в этой задаче вообще происходит?!
что такое
Цитата Сообщение от makarworld Посмотреть сообщение
омерами исходных чисел, разбивающих исходное сообщение на K частей (подпоследовательностей), так что сумма минимумов каждой подпоследовательности будет максимальна.
Это что означает?


я не тупой, но туплю конкретно, извини!
0
Status 418
Эксперт Python
3878 / 2154 / 575
Регистрация: 26.11.2017
Сообщений: 5,037
Записей в блоге: 2
05.12.2019, 17:32 4
Массив [1, 10, 2, 8, 9, 3, 5, 4, 7, 6] нужно разбить на ровно k подмассивов чтобы выполнялось условие.

Двумерное ДП, рекурсия, восстановление ответа.
1
2903 / 1553 / 624
Регистрация: 19.03.2019
Сообщений: 5,153
05.12.2019, 18:01 5
eaa, спасибо за ответ!

Цитата Сообщение от eaa Посмотреть сообщение
Двумерное ДП, рекурсия, восстановление ответа.
вот сразу полегчало, не поверишь...

не, чуток и правда стало яснее. нужно массив из 10 чисел разбить ровно на 5 подмассивов (т.е. по 2 числа в массиве), так, чтобы "сумма минимумов каждой подпоследовательности будет максимальна"
но не скажу, чтобы я теперь смог эту задачу решить, но хотя бы смог понять, что требуется. это уже неплохо!
0
Status 418
Эксперт Python
3878 / 2154 / 575
Регистрация: 26.11.2017
Сообщений: 5,037
Записей в блоге: 2
05.12.2019, 18:05 6
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
т.е. по 2 числа в массиве
не по два числа, а минимум 1 число должно быть.
например:
[1, 10, 2], [8], [9], [3, 5, 4], [7, 6]
1
2903 / 1553 / 624
Регистрация: 19.03.2019
Сообщений: 5,153
06.12.2019, 09:54 7
Цитата Сообщение от eaa Посмотреть сообщение
не по два числа, а минимум 1 число должно быть.
о как. теперь всё окончательно (про само задание) понятно, большое спасибо!
вижу, что порядок нельзя менять, т.е. нельзя разбить так
[1,2,3,4,5] [10] [8] [9] [6,7] =>сумма минимумов = 34
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2019, 09:54
Помогаю со студенческими работами здесь

Написать программу которая выполняет функции простого калькулятора
Написать программу которая выполняет функции простого калькулятора. Пользователь вводит...

Написать программу, которая выполняет умножение двух матриц
Написать программу, которая выполняет умножение двух матриц (матрицы не квадратные).

Написать программу, которая выполняет действия над матрицами
Написать программу, которая выполняет действия над матрицами (n x m), меняет местами первую и...

Написать программу, которая выполняет следующие действия одномерного массива:
1) позволяет вводить массив; 2) выполняет преобразование массива: Записать в отдельный массив...


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

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

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