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

Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным - C++

Восстановить пароль Регистрация
 
olea
5 / 5 / 1
Регистрация: 30.01.2012
Сообщений: 153
05.12.2013, 17:15     Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным #1
Здравствуйте! Подскажите пожалуйста, в чем ошиблась
у меня массив Examen структур с данными о номере Nomer. Для каждого номера дано время выполнения, пункты и вероятность. Также дано время, которое отводится на выполнение теста W. n = кол-во номеров в тесте.

C++
1
2
3
4
5
struct Nomer{
    int Punctaj;
    int Vremea;
    int Veroeatnosti;
} Examen[NM];
и алгоритм поиска минимального время выполнения теста, чтобы количество набранных баллов было максимальным.

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
int k,s;
    for(i=0; i<W;i++)
        A[0][i] = 0;
    for(i=0; i<=n;i++)
        A[0][i] = 0;
    for(k=1; k<=n;k++)
        for(s=0; s<=W;s++)
            if (s >= Examen[k].Vremea)
                A[k][s] = max (A[k-1][s], A[k-1][s-Examen[k].Vremea]+Examen[k].Punctaj);
            else 
                A[k][s] = A[k-1][s];
 
    printf("%d ",  A[n][W]); // Хочу вывести и посмотреть максимальный балл - выводит 0
    findAns(n, W);
    getch();
}
 
int findAns(int k, int s){
    if (A[k][s] == 0 )
        return 0;
    if (A[k-1][s] == A[k][s])
        findAns(k-1, s);
    else {
        findAns(k-1, s - Examen[k].Vremea);
        printf("%d ",  Examen[k].Vremea);
    }   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 17:15     Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным
Посмотрите здесь:

Известны оценки абитуриента на 4 экзаменах. Определить сумму набранных баллов. C++
известны оценки абитуриентов на четырех экзаменах . определить сумму набранных им баллов C++
Удалить из записи числа указанное количество цифр так, чтобы полученное число было максимальным C++
На сколько частей и как нужно разделить отрезок, чтобы произведение длин частей было максимальным C++
Как решать с использованием цикла (Определить сумму набранных баллов)? C++
Сделать, чтобы программа работала определенное количество времени C++
C++ Подсчитать количество способов размещения, чтобы между числами k было ровно k других чисел
Вывести файл на экран, чтобы в каждой строке было не больше 40 символов, и количество строк было минимальным C++

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

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

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