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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построчное чтение файла в C++ Builder 6 http://www.cyberforum.ru/cpp-beginners/thread795957.html
Есть кусок кода консольного приложения, слова заносим в массив строк (писал в Dev C++) ifstream w("words.txt"); string wordBase; for(int i = 0; i < 26800; i++) { w >> wordBase; }Нужно...
C++ Параллельный код решения системы Доброго вечера, мастера нулей и единиц! Преподаватель дал задание - сам не разберусь никак. Может кто чего подскажет или поможет. Задание: написать параллельный код решения системы линейных... http://www.cyberforum.ru/cpp-beginners/thread795951.html
C++ Ввод/вывод очень маленьких чисел
Народ, срочно нужно! Подскажите, как сделать чтобы при арифметических операциях в С++ можно было посчитать числа порядка 10^(-200)? А еще лучше порядка 10^(-500)! У меня неизвестно по каким...
Проблемы с stringObj.append(stringObj.at(i) и stringObj.append(classObj[i].charObj) C++
Всем доброго времени суток. Столкнулся со странной проблемой. И не смог сам разобраться. При добавлении к строке (string) элемента другой строки (в коде помечено "//ПРОБЛЕМА_1") или символа (char)...
C++ Сформировать массив по условию http://www.cyberforum.ru/cpp-beginners/thread795939.html
Заданы два вещественных массива Х=(х1, х2, …, хn) и Y=(y1, y2, …, ym). Сформировать массив Z, в который включить из массива Х элементы, превышающие среднее арифметическое значение массива Y, а из...
C++ Как заставить свой объект стрелять? Здравствуйте... Пытаюсь написать игру типа Космической дуэли... Застопарился на стрельбе... Точнее как заставить свой объект стрелять... Подскажите как можно организовать данный процесс. Или где... подробнее

Показать сообщение отдельно
ScorpionL
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 5

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

27.02.2013, 01:59. Просмотров 350. Ответов 0
Метки (Все метки)

Здравствуйте, вот код кажется на с++, помогите пожалуйста подключить нужные библиотеки, исправить ошибку или сделать проект, а то у меня никак неполучаеться.

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);
}
 Комментарий модератора 
Создавайте тему в соответствующем разделе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru