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

Динамическое программирование. Таблица. Набор букв на мобильнике - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из заданной числовой последовательности выделить монотонно неубывающую подпоследовательность максимально возможной длины http://www.cyberforum.ru/cpp-beginners/thread229499.html
Привет вам, умный народ! Вынужден обратиться к вам за помощью, ибо прижало! Проблема у меня с динамическим программированием, а большинству из вас это плевое дело) Из заданной числовой последовательности выделить монотонно неубывающую подпоследовательность максимально возможной длины. Если таких несколько, то из них нужно выбрать ту, у которой наибольшая сумма чисел. Вход-выход -...
C++ Графика(нарисовать паркет) Кто нибудь может скинуть графику на си или паскале, вида "паркет" http://www.cyberforum.ru/cpp-beginners/thread229498.html
C++ Как смонтирована файловая система?
Здравствуйте. Подскажите,пожалуйста, как в Solaris'e узнать как смонтирована файловая система? Я знаю,что можно использовать mount без аргументов, но тогда говорится,что такая команда не существует.
Задание по строкам! C++
Удалить из заданной строки все группы символов, расположенные между круглыми скобками, включая сами скобки.
C++ Чтение структуры из файла http://www.cyberforum.ru/cpp-beginners/thread229448.html
мне надо считать структуру из файла и вывести данные на экран. считывать-то считывает.. но вот выводит ерунду какую-то. помогите разобраться(( данные в файле (.txt): 1 Avtor1 Nazv1 izd-vo1 1111 111 11.1 2 Avtor2 Nazv2 izd-vo2 2222 222 22.2 3 Avtor3 Nazv3 izd-vo3 3333 333 33.3 4 Avtor4 Nazv4 izd-vo4 4444 444 44.4 5 ...
C++ 2 программы, не знаю как написать( 1) Вычислить Z=(S1+S2)/2 , где S1-сумма положительных элементов массива X, а S2- сумма отрицательных элементов массива A. Суммы вычислять в одной функции. Функции ввода и вывода массивов описывать отдельно, не объединяя с обработкой данных. 2)В матрице A(m,n), состоящей из нулей и единиц, найти квадрат наибольшего размера(квадратную подматрицу), состоящий целиком из нулей. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.01.2011, 23:14     Динамическое программирование. Таблица. Набор букв на мобильнике
2-ая. Проверяйте:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include<iostream>
#include<conio.h>
using namespace std;
int N, M, *a, **mas_res, n_res, Res=-1, **mas_temp, n_temp=0;
void rec(int Sum, int i)
{
    if(i==N)
    {
        if(Res==-1)
        {
            for(int j=0; j<n_temp; j++)
            {
                mas_res[j][0]=mas_temp[j][0];
                mas_res[j][1]=mas_temp[j][1];
            }
            n_res=n_temp;
            mas_res[n_res-1][1]=N;
            Res=Sum;
        }
        else
        {
            if(Res>Sum)
            {
                for(int j=0; j<n_temp; j++)
                {
                    mas_res[j][0]=mas_temp[j][0];
                    mas_res[j][1]=mas_temp[j][1];
                }
                n_res=n_temp;
                Res=Sum;
                mas_res[n_res-1][1]=N;
            }
        }
    }
    int temp=0;
    for(int j=i; j<N; j++)
    {
        
        temp+=a[j]*(j-i+1);
        if(n_temp<M-1 || (n_temp==M-1 && j+1==N))
        {
            mas_temp[n_temp++][1]=j+1;
            if(n_temp<M)
                mas_temp[n_temp][0]=j+2;
            rec(Sum+temp, j+1);
            n_temp--;
        }
    }
}
 
int main()
{
        int i;
        cin>>N>>M;
        a=new int[N];
        for(i=0; i<N; i++)
            cin>>a[i];
        mas_res=new int*[M];
        mas_temp=new int*[M];
        for(i=0; i<M; i++)
        {
            mas_res[i]=new int[2];
            mas_temp[i]=new int[2];
        }
        mas_temp[0][0]=1;
        rec(0, 0);
        cout<<Res<<endl;
        for(i=0; i<n_res; i++)
            cout<<mas_res[i][0]<<" "<<mas_res[i][1]<<endl; 
        system("PAUSE");
        for (i=0; i<M; i++)
        {
            delete [] mas_res[i];
            delete [] mas_temp[i];
        }
        delete [] mas_res;
        delete [] mas_temp;
        return 0;
}
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru