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

Запаковка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ из int[] в int http://www.cyberforum.ru/cpp-beginners/thread181467.html
Как из целочисленного массива сделать обычную переменную типа int?
C++ Матрица,Машинные коды,строки 1. Выполнить действия над машинными кодами чисел: Результаты X и Y представить в разрядных сетках соответствующих форматов а) с фиксированной точкой в 16-ти разрядном формате Х=А+В , где А= -264; В= -336; б) с плавающей точкой и смещенным порядком в 32-х разрядном фор-мате Y=C+D, где С= -260,625; D= 13 7/8. 2. Дана действительная матрица А размером MxN, где M, N - заданные нату-ральные... http://www.cyberforum.ru/cpp-beginners/thread181463.html
Найти сумму наибольших значений элементов строк матрицы C++
Дана действительная матрица размера m x n. Найти сумму наибольших значений элементов ее строк. Заранее спасибо!)
Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение C++
помогите пожалуйста написать программу: "Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение." Реализуйте действия задания по вводу, преобразо- ванию и распечатке результата в виде собственных функций. Использование глобальных переменных запрещено. Все исходные данные функция должна по- лучать в виде параметров. Каждая функция должна...
C++ самая длинная последовательность из n 1 и 0 http://www.cyberforum.ru/cpp-beginners/thread181451.html
дается число n. из сочетаний 1 и 0 длиной n нужно составить самую длинную последовательность, так чтобы ни одно сочетание не встречалось дважды. пример: n=2. возможные сочетания: 00 01 10 11. самая длинная последовательность 11001( они накладываются друг на друга, здесь получается используется 11 10 00 01) совсем что-то мыслей нет, только тупо перебирать, но как-то это нехорошо...
C++ Найти простые числа пользуясь методом решета Эратосфена НЕ используя массивы Задача формулируется простыми словами: найти простые числа 0..N пользуясь методом решета Эратосфена НЕ используя массивы. Препод сказал задача не тревиальная и решимая. З.Ы. Учить С мы только начали, следовательно ниче такого сверх-сверх в проге юзать низзя. Хотяя... Но сам лично в си немного шарю. В консольном пока только) подробнее

Показать сообщение отдельно
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
26.10.2010, 13:50     Запаковка
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
#include <fstream>
#include <string>
 
using namespace std;
 
ofstream cout("output.txt");
ifstream cin("input.txt");
 
int dp[200][200]; // [start][len]
string s;
 
const int inf = 987654321;
 
int numberLen(int n)
{
    if(n <= 9)
        return 1;
    else
        return 2;
}
 
bool good(int start, int L, int len)
{
    for(int i = L; i < len; i++)
        if(s[start+i] != s[start+i%L])
            return false;
    return true;
}
 
int f(int start, int len)
{
    if(dp[start][len] == 0)
    {
        if(len == 1)
            dp[start][len] = 1;
        else
        {
            dp[start][len] = inf;
            for(int L = 1; L <= len-1; L++)
                dp[start][len] = min(dp[start][len],f(start,L)+f(start+L,len-L));
 
            for(int L = 1; L <= len/2; L++)
                if(len % L == 0)
                    if(good(start,L,len))
                            dp[start][len] = min(dp[start][len], numberLen(len/L) + 2 + f(start,L));
        }
    }
    return dp[start][len];
}
 
int main()
{
    cin >> s;
    cout << f(0,s.size());
}
 
Текущее время: 05:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru