![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
"minem |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
В Берляндский ГУ поступила новая обучающая программа. Её надо скопировать на все N компьютеров. Сейчас она установлена только на первом. Компьютеры не объединены в локальную сеть и не снабжены дисководами. Единственный способ передать информацию с одного компьютера на другой - скопировать её, используя нуль-модем (провод, соединяющий два компьютера напрямую). К компьютеру может быть подключен в один момент времени только один нуль-модем. Таким образом, с любого компьютера, где установлена программа, её можно скопировать на какой-то другой (но только на один) всего за один час. В БерГУ есть всего K нуль-модемных шнуров. Ваша задача по заданным N и K найти наименьшее время, необходимое для копирования программы на все имеющиеся компьютеры.
Входные данные В первой строке записаны через пробел числа N и K (1 <= N <= 10^9, 1 <= K <= 10^9). Выходные данные Выведите единственное число - наименьшее время (в часах), необходимое для копирования новой программы на все компьютеры. Пример Ввод 8 3 Вывод 4 какие предложения по решению??? |
![]() ![]() |
hiv |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Ну вот и я поспел
![]() Сделал табличку для разных N K. Прога: Код const max_n=20; var n,k,r1,r0 :integer; begin write('n\k '); for k:=1 to max_n-1 do write(k:3); writeln; for k:=1 to 4+(max_n-1)*3 do write('-'); writeln; for n:=2 to max_n do begin write(n:2,'| '); for k:=1 to n-1 do begin r0:=Trunc(ln(k)/ln(2)+0.9999999999999); r1:=Trunc((N - 1 shl r0)/k+0.9999999999999); write( (r0 + r1):3 ); end; writeln; end; end. Результат: Код n\k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ------------------------------------------------------------- 2| 1 3| 2 2 4| 3 2 2 5| 4 3 3 3 6| 5 3 3 3 3 7| 6 4 3 3 3 3 8| 7 4 4 3 3 3 3 9| 8 5 4 4 4 4 4 4 10| 9 5 4 4 4 4 4 4 4 11| 10 6 5 4 4 4 4 4 4 4 12| 11 6 5 4 4 4 4 4 4 4 4 13| 12 7 5 5 4 4 4 4 4 4 4 4 14| 13 7 6 5 5 4 4 4 4 4 4 4 4 15| 14 8 6 5 5 5 4 4 4 4 4 4 4 4 16| 15 8 6 5 5 5 5 4 4 4 4 4 4 4 4 17| 16 9 7 6 5 5 5 5 5 5 5 5 5 5 5 5 18| 17 9 7 6 5 5 5 5 5 5 5 5 5 5 5 5 5 19| 18 10 7 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 20| 19 10 8 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ну вот и я поспел ![]() Извини, hiv, я не заметил твоего поста (не обновил экран). Формула очень похожа на мою (ессно, а что тут еще придумаешь? ![]() ага, понял. А ты не боишься что при больших М будут проблемы с точностью? Впрочем, вряд ли.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 10.09.2025 5:33 |