Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 29.05.2018
Сообщений: 6
1

Ускорение кода

10.12.2018, 21:36. Показов 7516. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят помогите ускорить код. Создаётся вектор на 100000001. Далее приходит n пар - начало и конец. Нужно добавлять единички к элементам начиная с индекса старт, заканчивая на индексе конец. Потом найти максимальный элемент. Сейчас буквально сотых долей секунды не хватает чтобы пройти тест
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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
int main(){
 
    vector <short int> mas(10000001);
    int n, st, end;
    
    cin >> n;
    
    for(int i = 0; i < n; i++){
        cin >> st >> end;
        for (auto it = mas.begin() + st; it != mas.begin() + end + 1; ++it)
            {
                *it += 1;
            }   
    }
    
    cout << std::distance(mas.begin(), std::max_element(mas.begin(), mas.end()));
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 21:36
Ответы с готовыми решениями:

Ускорение кода
Как ускорить код: #include &lt;iostream&gt; using namespace std; int main(){ int n, q, c =...

Ускорение кода
Всем привет у меня возник вопрос, как ускорить выполнение кода и я бы хотел изложить своим мысли по...

Многократное ускорение кода[литература]
Здравствуйте, я дилетант в ЯП C++ перешёл на него после достаточно долгого изучения C# с целью...

Ускорение
Здраствуйте, есть код: #include &lt;stdio.h&gt; #define MAX 1000010 long long h; int i, n,...

4
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
10.12.2018, 21:49 2
Выкинуть вектор и заменить на обычный массив.
0
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,916
10.12.2018, 21:51 3
не вычисляйте на КАЖДОЙ итерации внутреннего цикла ОДНО И ТО ЖЕ значение выражения mas.begin() + end + 1.
Вычислите его до цикла, сохраните в переменную и используйте её.
0
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
10.12.2018, 21:54 4
Ускорители ввода и вывода
C++
1
2
3
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
10.12.2018, 22:09 5
std::iota
0
10.12.2018, 22:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2018, 22:09
Помогаю со студенческими работами здесь

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

Найти траекторию движения, скорость, ускорение, нормальное и касательное ускорение точки
Точка движется по плоскости XOY по закону x=x(t), y=y(t)/ В свою очередь плоскость XOY вращается...

Directx 11: недоступны функции Ускорение DirectDraw, Direct3D, Ускорение текстур AGP
Здравствуйте. Вся проблема как я понял в том, что у меня не правильно работает Directx. Я никак не...

Определить траекторию, скорость, полное ускорение, касательное ускорение и радиус кривизны траектории
Движение точки задано уравнением x=x(t) и y=y(t). Определить траекторию, скорость, полное...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru