Форум программистов, компьютерный форум CyberForum.ru

Задача «Общая подпоследовательность» - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужна книга по программированию под VxWorks http://www.cyberforum.ru/cpp-beginners/thread374256.html
Помогите найти, пожалуйста, какую-нить книжечку в сети по программированию под VxWorks. Ищу ищу и никак не найду. Вот, например, нашёл http://www.bookseller.ru/book.php?n=86 но это надо покупать и не известно когда доставят. Поэтому нужно что-то в электронном виде. Ну, на крайний случай на английском языке =) Но желательно на русском=)
C++ Найдите ошибку Не могу понять в чем ошибка. Write a function that find the sum of the elements that are located between first two zeros. Input: First line contains n (1<=n<=100) Than n numbers are inputed. Output: The sum between first two zeros. http://www.cyberforum.ru/cpp-beginners/thread374255.html
C++ Слияние двух списков(срочно!)
Даны два списка, нужно их склеить. Вот, написал, но при комплияции выдаются неведомые мне ошибки. Кто-нибудь из опытных людей может мне помочь, пожалуйста? Вот код: #include <iostream> #include <math.h> using namespace std; struct node //Описание первого списка
Строка C++
Ввести строку длиной до 30 символов, заменить в ней двойных символов на одиночные, пробелов - на знак подчёркивания, сочетания '**' на многоточие '...' Заранее спасибо.!
C++ Простая задача чертёж http://www.cyberforum.ru/cpp-beginners/thread374240.html
нужно простой построить чертёж типо как точки ставить прямые проводить обозначать вершины цифрами кому не сложно напишите
C++ При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. Создать телефонный справочник на 10 имен, адресов и номеров. При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. Не могу что-то разобраться #include <iostream> #include <cstdio> using namespace std; подробнее

Показать сообщение отдельно
volovzi
266 / 168 / 8
Регистрация: 14.03.2010
Сообщений: 501
30.10.2011, 01:03     Задача «Общая подпоследовательность»
Includenv, тривиальная — покажи.

Добавлено через 25 минут
Ладно.
Для затравки, вот функция для расчёта длины наибольшей подпоследовательности двух последовательностей (пока только длины, без самой последовательности).
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
#include <iostream>
#include <vector>
 
template <typename Value>
Value max (const Value & a, const Value & b, const Value & c)
{
    return std::max(std::max(a, b), c);
}
 
template <typename Sequence>
int largest_common_sequence (const Sequence & first, const Sequence & second)
{
    typedef std::vector<int> matrix_row_type;
    typedef std::vector<matrix_row_type> matrix_type;
    matrix_type matrix(first.size() + 1, matrix_row_type(second.size() + 1, 0));
    
    for (int i = 1; i <= first.size(); ++i)
    {
        for (int j = 1; j <= second.size(); ++j)
        {            
            matrix[i][j] = max
            (
                matrix[i - 1][j],
                matrix[i][j - 1],
                matrix[i - 1][j - 1] + static_cast<int>(first[i - 1] == second[j - 1])
            );
        }
    }
    
    return matrix.back().back();
}
 
int main ()
{    
    std::string s1, s2;
    std::cin >> s1 >> s2;
    
    std::cout << largest_common_sequence(s1, s2) << std::endl;
    
    return 0;
}
Попробуй сделать по аналогии случай с тремя последовательностями. Для начала тоже только расчёт длины без явного нахождения подпоследовательности.
 
Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru