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

Счастливый билет. Надо сократить время работы программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица MxN http://www.cyberforum.ru/cpp-beginners/thread995712.html
Дана матрица MxN. Поменять местами максимальный и минимальный элемент в каждом столбце матрицы.Программа на С++. У кого нибудь есть идеи насчет задачи?:cry:
C++ элемент в наименьшей в степени отличающийся от среднего арифметического значения M1 - возвращается элемент M1, в наименьшей в степени отличающийся от среднего арифметического значения элементов M2. M1 и M2 матрицы. Помогите пожалуйста с алгоритмом. http://www.cyberforum.ru/cpp-beginners/thread995695.html
Перегрузка потоков и итераторы C++
Здравствуйте! Не могу найти проблему... помогите пожалуйста, вот код: #include "stdafx.h" #include <iostream> #include <list> #include <iterator> #include <algorithm> struct Date { int day;
C++ const int
При выводе в консоль переменные имеют рандомные значения, да и инициализированы они как const int , но в //bool bMass; все равно требует чтобы значение было константным. Почему так? #include <iostream> #include <time.h> using namespace std; int main() { setlocale (LC_ALL, "Russian"); srand( (unsigned)time( NULL ) ); const int *i = new int ( rand () % 10 + 1);
C++ операциисо строками http://www.cyberforum.ru/cpp-beginners/thread995674.html
подскажите для чево и как ним пользоватса а то уже заплутлся нашол в инете что ето старый вариант и есть новый <sstream> . а то ппц дали задачу по Лафоре глав7 - зад 11 впринципе все понимаю а как с етим sstream зделатть не знаю (
C++ Получить новую матрицу Даны две целочисленные квадратные матрицы порядка n. Нужно получить новую матрицу прибавлением к элементам каждого столбца первой мат-рицы произведения элементов соответствующих строк второй матрицы. Проблема: или я не так что-то пишу, или я с ума сошел. Помогите, пожалуйста сделать это! #include <iostream> using namespace std; int main() { int const n=2; подробнее

Показать сообщение отдельно
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
03.11.2013, 15:47     Счастливый билет. Надо сократить время работы программы
v2. теперь попробуйте ее сломать
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
#include <cstdio>
using namespace std;
 
int dsum( int x )
{
    return x % 10 + x / 10 % 10 + x / 100 % 10 + x / 1000 % 10;
}
 
// считаем кол-во счастливых билетов с фиксированным значением старшей четверки чисел (hi) и диапазоном младшей четверки [a, b]
int calc_lo( int hi, int a, int b )
{
    int r = 0;
    int hi_sum = dsum( hi );
 
    for ( ; a <= b; ++a )
        if ( dsum( a ) == hi_sum )
            ++r;
    return r;
}
 
// считаем кол-во счастливых билетов в диапазоне [a0000, b9999], где a и b определяют диапазон значений старшей четверки чисел
int calc_hi( int a, int b )
{
    int hcnt[ 37 ] = { 0 };
    int lcnt[ 37 ] = { 0 };
    int r = 0;
 
    for ( ; a <= b; ++a ) ++hcnt[ dsum( a ) ];
    for ( int i = 0; i < 10000; ++i ) ++lcnt[ dsum( i ) ];
    for ( int i = 1; i < 37; ++i ) r += hcnt[ i ] * lcnt[ i ];
 
    return r;
}
 
int calc( int m, int n )
{
    int m_lo = m % 10000, m_hi = m / 10000;
    int n_lo = n % 10000, n_hi = n / 10000;
    int t;
 
    if ( n_hi - m_hi == 0 )
        return calc_lo( m_hi, m_lo, n_lo );
 
    t = calc_lo( m_hi, m_lo, 9999 ) + calc_lo( n_hi, 0, n_lo );
    if ( n_hi - m_hi == 1 )
        return t;
    return calc_hi( m_hi + 1, n_hi - 1 ) + t;
}
 
int main()
{
    int m, n;
 
    scanf( "%d%d", &m, &n );
    printf( "%d\n", calc( m, n ) );
 
    return 0;
}
 
Текущее время: 14:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru