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

Дерево отрезков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Длинное сложение http://www.cyberforum.ru/cpp-beginners/thread630876.html
Добрый день, помогите пож-та решить задачи на с++. Нашел решение (расписаны все алгоритмы, процедуры подсчета и т. д.), но сложность состоит в том, что я не понимаю строищихся структур и вообще никогда не программировал на c++.Поэтому прошу помочь собрать все воедино (чтение из файла, работа программы, запись в файл). Основная задача - считать с файла, воспользоваться функцией, вывести в файл ...
C++ Алгоритм Дейкстры Добрый день, помогите пож-та решить задачи на с++. Нашел решение (расписаны все алгоритмы, процедуры подсчета и т. д.), но сложность состоит в том, что я не понимаю строищихся структур и вообще никогда не программировал на c++.Поэтому прошу помочь собрать все воедино (чтение из файла, работа программы, запись в файл). Основная задача - считать с файла, воспользоваться функцией, вывести в файл... http://www.cyberforum.ru/cpp-beginners/thread630873.html
C++ Dev-C++ 4.9.9.2 не показывает номера строк
Чё делать? +++++++++++++++++++++++++++++++++++++++ Я в неё интегрировал g++ 4.6.1 по-моему, вот инсталлятор mingw-get-inst-20111118.exe (пользовался им и раньше, всё было нормально) Инсталлятор качает чего-то с сайта, обновления, наверное. И теперь ошибки стали выводиться на русском языке, а номера строк, где эти ошибки есть, не выводятся. Добавлено через 5 часов 17 минут Парни, вы...
C++ Делаю Memory Manager Array с простым (int) exception последний элемент чудит
//array_hpp #ifndef Array_HPP #define Array_HPP #include "Point.hpp" #include <iostream> class Array {
C++ "Плейсхолдер" (placeholder) http://www.cyberforum.ru/cpp-beginners/thread630846.html
"Плейсхолдер" (переводится как прототип или заполнитель ?) - так говорят многие участники на этом форуме, объясните пожалуйста, что это такое ?? поисковик выдал мне много всего от хабра с html5 до как лечить удава. Ребят, еще вопрос у меня в теме по Си )) про signal.h, помогите разобраться ))
C++ Рисование ASCII кодами и русский текст в консоли Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а под ним горизонтальную линию. Только вместо линии получаются каракули. Уже по разному пробовал, шрифты менял и ничего не помогает. Получается или текс по-русски а вместо линии непонятно что, или линия нормальная а вместо текста абракадабра. Как это можно одновременно сделать? #include <iostream> #include <windows.h>... подробнее

Показать сообщение отдельно
shPavel25
 Аватар для shPavel25
6 / 6 / 0
Регистрация: 29.03.2011
Сообщений: 44
31.07.2012, 01:23  [ТС]     Дерево отрезков
то есть если напишу так:

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
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
 
vector<long long> t;
int n;
void build (const vector<int> & a, int i = 1, int l = 0, int r = n-1) {
if (i == 1)
t.resize (n*4 + 1);
if (l == r)
t[i] = a[l];
else {
int m = (l + r) / 2;
build (a, i*2, l, m);
build (a, i*2+1, m+1, r);
t[i] = t[i*2] + t[i*2+1];
}
}
long long sum (int l, int r, int i = 1, int tl = 0, int tr = n-1) {
if (l == tl && r == tr)
return t[i];
int m = (tl + tr) / 2;
if (r <= m)
return sum (l, r, i*2, tl, m);
if (l > m)
return sum (l, r, i*2+1, m+1, tr);
return sum (l, m, i*2, tl, m) + sum (m+1, r, i*2+1, m+1, tr);
}
void update (int pos, int newval, int i = 1, int l = 0, int r = n-1) {
if (l == r)
t[i] = newval;
else {
int m = (l + r) / 2;
if (pos <= m)
update (pos, newval, i*2, l, m);
else
update (pos, newval, i*2+1, m+1, r);
t[i] = t[i*2] + t[i*2+1];
}
}
int main()
{
    freopen("input.txt","r",stdin); 
    freopen("output.txt","w",stdout);
int n,m;
cin>>n>>m;
 vector<int> a(n);
  for (int i = 0; i <n; i++)
         cin>>a[i];
//я так понимаю теперь строим T
build (a);
//по задаче подается m запросов - если S 2 4  - сумма со 2 по 4 элемента включительно
// М 5 9  - необходимо присвоить элементу 5 значение 9
char operation;
int q1,q2;
for (i=0; i<m; ++i)
{
cin>>operation>>q1>>q2;
if (operation="S") 
sum(q1,q2);
else 
update(q1,q2);
}
for (i=0; i<m; ++i)
cout<<t[i]<<'" ";
}
или я не правильно понял?
 
Текущее время: 03:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru