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

В чем может быть ошибка. Расстояние между вершинами дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача в функцию знака операции (+,-,*,/) http://www.cyberforum.ru/cpp-beginners/thread1221956.html
Хотелось бы написать функцию по работе очень похожа на калькулятор, для удобства расчетов. Но ни как не могу понять как передать операцию + или - или / или * . К примеру вызываю функцию poshitay(100,...
C++ Запись и считывание двух фраз из файла по условию Стоит задача создать программу которая будет записывать 2 фразы в 2 разные переменные и считывать эти фразы из файла и потом идёт проверка 2 фразы из 2 переменной и пишется фраза. У меня пишет что я... http://www.cyberforum.ru/cpp-beginners/thread1221942.html
Константа типа short C++
Как в программе задать константу типа short? Чтобы понятнее было приведу индефикаторы, которые в результате дают соответствующий тип константе. по умолчанию - int. L - long LL - long long
C++ Побитовые операции, Что делает операция ^
Здравствуйте! Что делает эта операция? char * a; for (int i=0;i<n;i++) a= a^"$";
C++ Стек. Выведите все вхождения символов указанного набора в текст в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread1221914.html
Дан текст, состоящий из заглавных и строчных английских букв, символов ! ; ? . , - : ; ) ( ' " и пробелов. Выведите все вхождения символов указанного набора в текст в обратном порядке. Для...
C++ Строки: удалить все символы, которые размещены между скобками Помогите пожалуйста. Без понятия как это сделать. Удалить из заданной последовательности все символы которые размещены между скобками ("(...)"). Сами скобки так же должны быть удалены. Внутри... подробнее

Показать сообщение отдельно
Maaksi
1 / 1 / 0
Регистрация: 20.01.2014
Сообщений: 16

В чем может быть ошибка. Расстояние между вершинами дерева - C++

03.07.2014, 16:49. Просмотров 384. Ответов 9
Метки (Все метки)

Входные данные:
Первая строка содержит количество вершин в дереве n(1<=n<=500000). Вершины имеют значения от 0 до n-1.
В следующих n-1 строках содержится по 3 целых числа u,v,w, которые отвечают ребру весом w, соединяющему вершину u и v
В следующей строке дано число m - количество запросов. В следующих m строках дано по два числа - номера вершин между которыми нужно найти расстояния.

Выходные данные:
На каждый запрос вывести ответ

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
std::vector<int>  Dei(const  int& n,const std::vector<int>& mat,const int& Number )
{
    std::vector<bool> tr(n, false);
    std::vector<int> distance(n, INT_MAX);
    distance[Number] = mat[Number*n + Number];
    for (int i = 0; i < n; i++)
    {
        int min = INT_MAX;
        int count = 0;
        for (int j = 0; j < n; j++)
        {
            if (distance[j] <= min&&!tr[j])
            {
                count = j;
                min = distance[j];
            }
        }
        tr[count] = true;
        for (int j = 0; j < n; j++)
        {
            if (!tr[j] && mat[count*n + j] >= 0 && mat[count*n + j] + distance[count] < distance[j])
                distance[j] = mat[count*n + j] + distance[count];
        }
    }
    return distance;
}
void main()
{
    int n;//кількість вершин
    std::cin >> n;
    std::vector<int> mat(n*n, -1);
    for (int i = 0; i < n; i++)
        mat[i*n + i] = 0;
    for (int i = 0; i < n - 1; i++)
    {
        int u, v, w;
        std::cin >> u >> v >> w;
        mat[u*n + v] = w;
        mat[v*n + u] = w;
    }
    int y;
    std::cin >> y;
    std::vector<int> vec;
    for (int i = 0; i < y; i++)
    {
        int Nu, nu2;
        std::cin >> Nu >> nu2;
        vec = Dei(n, mat, Nu);
        std::cout << vec[nu2] << std::endl;
    }
}
Добавлено через 5 минут
З.ы: Код не проходит несколько тестов...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru