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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ramazan05duldug
38 / 38 / 8
Регистрация: 23.04.2012
Сообщений: 460
Записей в блоге: 2
#1

Организация сети заправок (red black tree) - C++

02.04.2014, 19:33. Просмотров 254. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста решить задачу......
Миниатюры
Организация сети заправок (red black tree)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 19:33     Организация сети заправок (red black tree)
Посмотрите здесь:

C++ Люди помогите с Tree View Control
C++ Tree, set, map etc.
C++ RB tree удаление узла
C++ объекты класса TREE
C++ Добавление узла и т.д. в B-tree
C++ Структура tree. Функция работы с этой структурой
Почему не работает в Red? C++
Вывести все слова из файла, содержащие в себе слово red C++
Dfs Binary Tree, поиск элемента C++
Error: could not convert ‘0l’ from ‘long int’ to ‘Tree::Node*&’ C++
C++ Expression tree
C++ Tree of expressions

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ramazan05duldug
38 / 38 / 8
Регистрация: 23.04.2012
Сообщений: 460
Записей в блоге: 2
02.04.2014, 22:07  [ТС]     Организация сети заправок (red black tree) #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
#include<cstdio>
#include<iostream>
#include<vector>
#include <math.h>
 
using namespace std;
 
#define name "redblack"
 
int x, n;
bool d[300000][60][2];
vector<vector<int> > g;
  
 
/* void dfs(int v)
{
    if(v == n - 1)
      return;
    int u = g[v][0];
    int w = g[v][1];
    dfs(u);
    dfs(w);
    for(int i = 1; i < x; i++)
    {
      d[v][i][0] |= (d[u][i][1] & d[w][i][1]);
      d[v][i][1] |= (d[u][i - 1][0] & d[w][i - 1][0]);
      d[v][i][1] |= (d[u][i - 1][1] & d[w][i - 1][1]);
      d[v][i][1] |= (d[u][i - 1][0] & d[w][i - 1][1]);
      d[v][i][1] |= (d[u][i - 1][1] & d[w][i - 1][0]);
    }
} */
 
int main()
{
  freopen(name".in", "r", stdin);
  freopen(name".out", "w", stdout);
  cin >> n;
  g.resize(n);
  for(int i = 0; i < n - 1; i++)
  {
    int a, b;
    cin >> a >> b;
    a--, b--;
    g[i].push_back(a);
    g[i].push_back(b);
  }
  x = 3 * ((int)log(n) + 1);
  d[n - 1][1][1] = true;
  dfs(0);
  bool ok = false;
  for(int i = 0; i < x; i++)
    ok |= d[0][i][1];
  for(int i = 0; i < n; i++)
  {
    for(int j = 1; j < x; j++)
      cout << d[i][j][0] << ' ';
    cout << endl;
  }
  cout << endl;
  for(int i = 0; i < n; i++)
  {
    for(int j = 1; j < x; j++)
      cout << d[i][j][1] << ' ';
    cout << endl;
  }        
  if(ok)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
  return 0;
Спасибо всем за помощь DDDDDDDD
Yandex
Объявления
02.04.2014, 22:07     Организация сети заправок (red black tree)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru