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

динамическое программирование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ анимация в С++ http://www.cyberforum.ru/cpp-beginners/thread360134.html
как заставить шарик вращаться?
C++ Функция гипотенуза Выдаёт значения но какие то не правильные например если ввести 2 и 2 то должно быть 8, а выдаёт 84 Что не так ? #include "stdafx.h" #include<iostream> #include <math.h> #include<cmath> using namespace std; double sum; double hypotenuse( double s1, double s2 ) { http://www.cyberforum.ru/cpp-beginners/thread360123.html
Просьба помочь реализовать класс. C++
Картка персони містить прізвище й дату народження. Реалізувати клас ListPerson для роботи з картотекою персоналій. Клас повинен містити масив карток персон. Реалізувати методи додавання й видалення карток персон, атакож метод доступу до картки на прізвище. Прізвища в масиві повинні бути унікальні. Реалізувати операції об'єжнання двох картотек, операцію перетинання й обчислення різниці. - Усі...
C++ Задача на методы половинного деления
Ребята помогите пожалуйста внести в систему метода половинного деления вот эту функцию: 4(Sin^4)x+2(Cos^3)x+7=0 #include <conio.h> #include <math.h> #include <iostream.h> #define pi 3.14 double f(double x) { return x*x-(cos(pi*x)); } main()
C++ case-switch http://www.cyberforum.ru/cpp-beginners/thread360107.html
Вот то задание что с case-switch надо сделать помогите знаю что задание дурное
C++ Поиск структур по условию Известны максимальные скорости 20 моделей легковых автомобилей. Марки моделей записаны в отдельном текстовом файле. Напечатать названия моделей, у которых максимальная скорость больше 180 км/ч. Вот попробовал.. но почему-то ругается! #include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> #include <math.h> подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
04.10.2011, 00:05     динамическое программирование
Это задача определения связности. Вот:

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
#include <stdio.h>
 
#define uint unsigned int
 
int main()
{
    uint n_elems, // количество элементов
         n_pairs; // количество заранее введённых пар
 
    uint i, u;
    uint * data;
 
    FILE *fd = fopen( "in.txt", "r" );
 
    if( !fd )
       return 1;
 
    fscanf( fd, "%d%d", &n_elems, &n_pairs );
 
    data = (uint*) malloc( sizeof(uint) * n_elems );
 
    for( i = 0; i < n_elems; i++ )
       data[i] = i + 1; /* нумерация с одного... */
 
    /*for( i = 0; i < n_elems; i++ )
       printf( "%4d ", data[i] );
 
    putchar( '\n' );*/
 
    for( i = 0; i < n_pairs; i++ )
    {
        uint a, b; // части пары
        fscanf( fd, "%d%d", &a, &b );
 
        /* printf( "pair: (%d, %d)\n", a, b ); */
 
        /* это значение имеет элемент [a-1] (-1 так как нумеация с 1) */
        uint key = data[a - 1];
 
        for( u = 0; u < n_pairs; u++ )
        {
            /* если этот элемент имеет значение ключа */
            if( data[u] == key )
               data[u] = data[b - 1]; /* назначаем ему значение второй части пары */
        }
 
        /*for( u = 0; u < n_elems; u++ )
            printf( "%4d ", data[u] );
 
        putchar( '\n' );*/
    }
 
    /* это значение первого элемента */
    uint key = data[0];
 
    for( i = 1; i < n_elems; i++ )
    {
        if( data[i] != key ) /* если значение текущего отличается от значения первого */
           break; /* вываливаемся */
    }
 
    /* если мы успешно проверили все связи */
    if( i == n_elems )
       puts( "YES" );
    else
       puts( "NO" );
 
    free( data );
 
    fclose( fd );
 
    return 0;
}
Раскомментируйте функции вывода, чтобы посмотреть работу.
 
Текущее время: 06:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru