Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.11.2022
Сообщений: 14

Олимпиадная задача. Лягушка

02.12.2022, 18:55. Показов 1236. Ответов 1

Студворк — интернет-сервис помощи студентам
Задача 8. Лягушка
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 MiB

Имеется N кувшинок, растущих в одну линию на расстоянии 1 метр друг от друга и пронумерованных от 1 до N. Лягушка сидит на кувшинке с номером 1. За один ход лягушка может прыгнуть
вперед или назад на любую кувшинку на расстоянии не более чем K метров. При этом от толчка
лягушки кувшинка закрывается и тонет, больше на нее прыгать нельзя. Сколько у лягушки есть
способов переместиться на кувшинку с номером N?

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

Формат выходных данных
Одно целое положительное число - количество способов, которыми лягушка может переместиться с кувшинки 1 на кувшинку N согласно условию.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2022, 18:55
Ответы с готовыми решениями:

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

Олимпиадная задача Автодополнение
Есть интересная задача. На Автодополнение слов. Я написал код на основе бинарных префиксных деревьев. Где каждое дерево хранит в себе...

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

1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
03.12.2022, 09:56
Цитата Сообщение от Shad42 Посмотреть сообщение
Сколько у лягушки есть способов переместиться на кувшинку с номером N?
Решение "в лоб" без оптимизации:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
        public static int Frog(int countLilies, int distance)
        {
            if (countLilies < 2 || countLilies > 18)
                throw new ArgumentOutOfRangeException(nameof(countLilies), "Значение должно быть в диапазоне 2 <= N <= 18.");
            if (distance < 1 || distance >= countLilies)
                throw new ArgumentOutOfRangeException(nameof(distance), "Значение должно быть в диапазоне 1 <= K < N.");
 
            bool[] lilies = new bool[countLilies];
            int last = countLilies - 1;
            int current = 0;
            int count = 0;
            Jumps();
 
            return count;
 
            void Jumps()
            {
                int _curr = current;
                lilies[_curr] = true;
                for (int i = 1; i <= distance; i++)
                {
                    int _next = _curr + i;
                    if (_next > last || lilies[_next])
                    {
                        continue;
                    }
                    if (_next == last)
                    {
                        count++;
                        continue;
                    }
                    current = _next;
                    Jumps();
                }
                for (int i = 1; i <= distance; i++)
                {
                    int _next = _curr - i;
                    if (_next < 0 || lilies[_next])
                    {
                        continue;
                    }
                    current = _next;
                    Jumps();
                }
                lilies[_curr] = false;
                current = _curr;
            }
        }
В секунду для N=18 и K=17 точно не уложится.
Да там и числа будут явно больше диапазона int.

Для оптимального решения нужно использовать какой-то другой подход.
Но какой именно - ума не приложу.
Или какой-то мат анализ, возможно, нужен.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2022, 09:56
Помогаю со студенческими работами здесь

Олимпиадная задача. Максимальное количество различных этикеток.
Вася коллекционирует спичечные этикетки. Для этого у него есть N альбомов вместимостью K1, K2, …, KN этикеток. Вася хочет, чтобы в случае...

Задача: Царевна-лягушка съедает ежедневно на 20 комаров больше, чем
Составить программу для решения следующей задачи: Царевна-лягушка съедает ежедневно на 20 комаров больше, чем в предыдущий день, и еще два...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько приложений. Каждое из приложений работает в...

C++. Олимпиадная задача
Здравствуйте! Код не проходит какой-то тест, может алгоритм не правильный. И если не правильный, то как исправить? Помогите найти ошибку....

Олимпиадная задача.
Помогите пожалуйста с задачей,очень срочно нужно. Задача. В список, состоящий из кодов разделительных символов, вставить (произвольно)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru