Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error C2064: выдает ошибку https://www.cyberforum.ru/ cpp-beginners/ thread123150.html
#include <iostream> #include <stdlib.h> #include <math.h> #include<clocale> using namespace std; // поиск мах int max (int *mass, int i,int n) { int m;
C++ Почему не работает?
создаю прогу, которая использует родовые функции. Вот написал код, когда две команды, которые я закоментировал закоментированы, то прога работает отлично, но когда я пробую работать с чаровским типом...
C++ Найти сумму элементов массива, значение которых попадают в интервал
Уважаемые форумчане вот такое задание: Дан одномерный массив A действительных чисел состоящий из N элементов: 1.Найти сумму элементов массива значение которых попадают в интервал (-5;5) 2.Найти...
C++ параллельное выполнение приветствую вас. есть проблема.. написал программку в c builder. Там есть цикл, который крутит выполнение некоторых операций - сканирует порты и выводит результат в окошко. Как сделать ток, чтоб эти... https://www.cyberforum.ru/ cpp-beginners/ thread123096.html
C++ Out of memory https://www.cyberforum.ru/ cpp-beginners/ thread123092.html
Недавно решил освоить графику в с++, и при прорисовке изображения на канве заметил, что оно занимает память. По таймеру каждые 100 миллисекунд отрисовываю на канве новое изображение, при этом...
Использование массивов в функциях.C++ C++
1. Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента и количество отрицательных после него в массивах Y(N) и X(M). Вычисление количества...
C++ Сортировка массива
Помогите пожалуйста отсортировать одномерный массив по возрастанию. Очень нужно. Где ни искал, нигде не нашел ни одного примера((
C++ Программа на точность. Составить функцию, которая вычисляет заданную функцию, что разложено в ряд Маклорена. Проверить работу функции с использованием библиотечных функций. Вычислить 5 (1+0.04) в степени (1/3) с точностью... https://www.cyberforum.ru/ cpp-beginners/ thread123082.html
C++ Прога по математике https://www.cyberforum.ru/ cpp-beginners/ thread123072.html
Задача Д. Андре. Есть массив, котрый состоит из чисел. Число читается с файла. Грубо говоря, числа идут лесенкой, так что числа идут по возрастанию слева-направо и сверху-вниз. Принцип построения...
C++ Системный анализ алгоритмов сортировки В чем суть. Надо исследовать 3 алгоритма сортировки : Быстрой сортировки, Пирамидальной сортировки, Сортировки слиянием. Исследовать более углубленно, по показателям. //Количество операций... https://www.cyberforum.ru/ cpp-beginners/ thread123070.html
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 3
0

Радиус после удаления висячих вершин

28.04.2010, 18:48. Просмотров 647. Ответов 0
Метки (Все метки)

Необходимо найти радиус графа после удаления висячих вершин. Не могу найти ошибку. Результат всегда выдается либо 10000,либо 1010 почему-то))

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <fstream>
 
using namespace std;
 
const int Infinity = 10000; // бесконечность
const int Nmax = 100; // максимальное количество вершин графа
int W[Nmax][Nmax];
int n;
 
// Алгоритм Флойда - Уоршелла
void Floyd_Warshall()
{
    for (int k = 0; k < n; k++)
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                W[i][j] = min(W[i][j], W[i][k] + W[k][j]);
}
 
// решение задачи
int Solve()
{
    Floyd_Warshall();
    int ecc, rad = Infinity;
    bool f;
    for (int i = 0; i < n; i++)
    {
        ecc = 0;
        f = false;
        for (int j = 0; j < n; j++)
        {
            if (i == j) continue;
            if ((ecc < W[i][j]) && (W[i][j] < Infinity)) 
            {
                ecc = W[i][j];
                f = true;
            }
        }
        if (!f) continue;
        if (rad > ecc) rad = ecc;
    }
    return rad;
}
 
// считываем граф, удаляем висячие вершины и заполняем матрицу W
void Read_And_Init()
{
    ifstream ifs;
    int M[Nmax][Nmax]; // матрица смежности
    ifs.open("input.txt");
    ifs >> n;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            ifs >> M[i][j];
    ifs.close();
 
    // удаляем висячие вершины.
    int q, k;
    for (int i = 0; i < n; i++)
    {
        q = 0;
        for (int j = 0; j < n; j++)
            if (M[i][j] > 0) 
            {
                k = j;
                q++;
            }
        if (q == 1)
        {
            M[i][k] = 0;
            M[k][i] = 0;
        }
    }
 
    // записывам в матрицу W длины ребер
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (i == j)
                W[i][j] = 0;
            else 
                if (M[i][j] > 0)
                    W[i][j] = M[i][j];
                else
                    W[i][j] = Infinity;
}
 
void Print(int R)
{
    ofstream ofs;
    ofs.open("output.txt");
    ofs << R;
    ofs.close();
}
            
int main()
{
    int R;
    Read_And_Init();
    R = Solve();
    Print(R);
}


Вернуться к обсуждению:
Радиус после удаления висячих вершин
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2010, 18:48
Готовые ответы и решения:

Есть дерево (ab) (bc) (cd) (ce) (bf) (fg) (fh) (fi) (bj). Составить список висячих вершин
Есть дерево ((ab) (bc) (cd) (ce) (bf) (fg) (fh) (fi) (bj)). Составить список висячих вершин

Найти радиус R описанной и радиус r вписанной окружности для данных вершин треугольника
2) Известны три точки - вершины треугольника АВС - А(20;15), В(-16;0), С(-8;-6). Найти радиус R...

Треугольник задан координатами вершин. Определить координаты и радиус описанной окружности
Помогите написать прогу! Треугольник задан координатами вершин. Определить координаты и радиус...

Для треугольника, заданного координатами вершин, вычислить радиус вписанной/описанной окружности
Треугольник задан координатами своих вершин. Составить программу для вычисления: 1)радиуса...

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