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

Подключить нужные библиотеки и исправить ошибки - C++

Восстановить пароль Регистрация
 
ScorpionL
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 5
27.02.2013, 01:59     Подключить нужные библиотеки и исправить ошибки #1
Здравствуйте, вот код кажется на с++, помогите пожалуйста подключить нужные библиотеки, исправить ошибку или сделать проект, а то у меня никак неполучаеться.

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
int n;
vector < vector<int> > a;      // Матрица эффективности a[разраб][задача]
vector<int> xy, yx;             // Паросочетания: xy[разраб], yx[задача]
vector<char> vx, vy;            // Альтернирующее дерево vx[разраб], vy[задача]
vector<int> maxrow, mincol;     // Способности, изученность
 
bool dotry (int i) {
    if (vx[i]) return false;
    vx[i] = true;
    for (int j=0; j<n; ++j)
        if (a[i][j]-maxrow[i]-mincol[j] == 0)
            vy[j] = true;
    for (int j=0; j<n; ++j)
        if (a[i][j]-maxrow[i]-mincol[j] == 0 && yx[j] == -1) {
            xy[i] = j;
            yx[j] = i;
            return true;
        }
    for (int j=0; j<n; ++j)
        if (a[i][j]-maxrow[i]-mincol[j] == 0 && dotry (yx[j])) {
            xy[i] = j;
            yx[j] = i;
            return true;
        }
    return false;
}
 
int main() {
 
    // ... чтение a ...
    
    mincol.assign (n, 0);
    minrow.assign (n, 0);
    for (int i=0; i<n; ++i)
        for (int j=0; j<n; ++j)
            maxrow[i] = max (maxrow[i], a[i][j]);
 
    xy.assign (n, -1);
    yx.assign (n, -1);
    for (int c=0; c<n; ) {
        vx.assign (n, 0);
        vy.assign (n, 0);
        int k = 0;
        for (int i=0; i<n; ++i)
            if (xy[i] == -1 && dotry (i))
                ++k;
        c += k;
        if (k == 0) {
            int z = INF;
            for (int i=0; i<n; ++i)
                if (vx[i])
                    for (int j=0; j<n; ++j)
                        if (!vy[j])
                            z = min (z, maxrow[i]+mincol[j]-a[i][j]);
            for (int i=0; i<n; ++i) {
                if (vx[i]) maxrow[i] -= z;
                if (vy[i]) mincol[i] += z;
            }
        }
    }
 
    int ans = 0;
    for (int i=0; i<n; ++i)
        ans += a[i][xy[i]];
    printf ("%d\n", ans);
    for (int i=0; i<n; ++i)
        printf ("%d ", xy[i]+1);
}
 Комментарий модератора 
Создавайте тему в соответствующем разделе
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 01:59     Подключить нужные библиотеки и исправить ошибки
Посмотрите здесь:

C++ Не может подключить библиотеки
C++ Исправить ошибки.
Ошибки из библиотеки avcodec C++
C++ Как подключить библиотеки в заголовочном файле?
Подключить библиотеки mysql C++
Ошибки при установке библиотеки FANN C++
Добавление библиотек в Visual Studio. Откуда взять нужные библиотеки? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru