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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача в функцию знака операции (+,-,*,/) http://www.cyberforum.ru/cpp-beginners/thread1221956.html
Хотелось бы написать функцию по работе очень похожа на калькулятор, для удобства расчетов. Но ни как не могу понять как передать операцию + или - или / или * . К примеру вызываю функцию poshitay(100, +, 200, /, 2). Может ли кто сказать возможно ли такое реализовать. Длинна переменных изменчива.
C++ Запись и считывание двух фраз из файла по условию Стоит задача создать программу которая будет записывать 2 фразы в 2 разные переменные и считывать эти фразы из файла и потом идёт проверка 2 фразы из 2 переменной и пишется фраза. У меня пишет что я ошибся, не могу понять в чём вроде как всё верно. Вот код: #include <iostream> #include <fstream> #include <iomanip> #include <Windows.h> using namespace std; 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
03.07.2014, 16:49     В чем может быть ошибка. Расстояние между вершинами дерева
Входные данные:
Первая строка содержит количество вершин в дереве 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 минут
З.ы: Код не проходит несколько тестов...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru