Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 4
Регистрация: 05.11.2016
Сообщений: 64

Динамическое программирование. Решение 3 вариантами (рекурсия,мемоизация, ДП)

06.05.2018, 14:34. Показов 1433. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
"Дыра" и отрезки на прямой заданы целыми координатами своих концов.
"Дыру" нужно закрыть с помощью отрезков; их суммарная длина должна быть
минимальной.
Ввод: "Дыра" и отрезки задаются в тексте: его первая строка содержит числа
L и U (координаты левого и правого концов "дыры"), следующие строки —
пары чисел Ai и Bi (0≤L<U≤1000, 0≤Аi<Вi≤1000). Отрезков не больше 100.
Вывод: Если "дыру" можно закрыть, то вывести сумму длин использованных
отрезков. Если дыру закрыть нельзя, то вывести 0. Структура решения – пары
координат в порядке возрастания координат левых концов использованных
отрезков. Если структур несколько, вывести любую.

Немного накидал кода... Если не сложно помогите с рекурсивной функцией
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
#include <iostream>
#include "black_hole.h"
#include <time.h>
#include <stdlib.h>
using namespace std;
 
Line Recursion(int left, int right, int l_hole, int r_hole)
{
    if()
}
int main()
{
    srand (time(NULL));
    int Left_Hole,Right_Hole;
    Left_Hole = rand() %1000; ///Координата от 0 до 1000 левого конца ДЫРЫ
    Right_Hole = rand() %1000;///Координата от 0 до 1000 правого конца ДЫРЫ
    cout << "BLACK HOLE COORDINATES -> (" << Left_Hole << "," << Right_Hole << ")" <<endl;
    cout << "---------------------" << endl;
    Line mas[100];
    int i;
    for(i = 0; i<100; ++i)
    {
        mas[i].setLine(rand() %1000,rand() %1000);
    }
     for(i = 0; i<10; ++i)
    {
        mas[i].getLine();
        cout << "Lenght - " << mas[i].Lenght() << endl << "---------------------" << endl;
    }
     for(i = 0; i<100; ++i)
    {
        Line temp;
        Recursion(mas[i].Left, mas[i].Right, Left_Hole, Right_Hole);
    }
    
    return 0;
}
А вот хэдер(.h)
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
#ifndef  BLACK_HOLE
#define BLACK_HOLE
#include <string>
#include <iostream>
#include <cmath>
using namespace std;
 
class Line{
    private:
        int Left;
        int Right;
    public:
        Line(  ) : Left(0), Right(0) {};
 
        Line (int _left, int _right ):
            Left(_left),Right(_right){};
 
        Line ( const  Line &other) :  Left(other.Left), Right(other.Right){};
 
 
        void setLine(int left, int right)
    {
        Left   = left;
        Right = right;
    }
 
        void getLine()
    {
          cout << "Line (" << Left << "," << Right << ")" <<endl;
    }
        int Lenght()
        {
                return abs(Left-Right) ;
        }
 
 
          };
 
 
#endif
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2018, 14:34
Ответы с готовыми решениями:

Минимальное покрытие отрезка отрезками. Рекурсия и динамическое программирование
&quot;Дыра&quot; и отрезки на прямой заданы целыми координатами своих концов. &quot;Дыру&quot; нужно закрыть с помощью отрезков; их суммарная...

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

Программирование алгоритмов ветвлений со многими вариантами
Помогите пожалуйста составить программу, определяющую по введенной дисциплине, и по введенной специальности, фамилию преподавателя. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2018, 14:34
Помогаю со студенческими работами здесь

Динамическое программирование
Есть такая задача: Дана схема стены, необходимо проверить можно ли построить данную стену заданным набором кирпичей. Кирпич высот 1, а...

Динамическое программирование
Помогите найти длину возрастающей подпоследовательности(не непрерывной) методом ДП на паскале

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

Динамическое программирование
Задача на динамическое программирования, есть часть программы не могу доделать=( помогите пжлст

Динамическое программирование!
#include &lt;cstdio&gt; #include &lt;algorithm&gt; using namespace std; int a, n, m; int main() { scanf(&quot; %d %d&quot;, &amp;n,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru