Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11634
Последний выпуск: 19.06.2015

NP-полная задача + рекурсия. [C#]

64K
09 декабря 2010 года
wormz3d
3 / / 09.12.2010
Помогите реализовать программу :(

Задание: написать рекурсивную программу решения NP-полной задачи:
Цитата:
Группа студентов сдает экзамен. В билете 2 вопроса и задача. Экзамен принимают 2 преподавателя, один принимает теорию, другой задачу, порядок сдачи вопросов билета фиксирован. Время, требующееся для сдачи каждым студентом каждой части билета известно. Успеют ли преподаватели принять экзамен в течение N часов? Предложить порядок сдачи экзамена, чтобы время сдачи было минимально.



Не получается придумать рекурсивную схему решения :confused:

Код:
class Program
    {
        static int Count = 0, N = 0; // кол-во студентов и время экзамена
        static int[] timeT; // время требующееся для сдачи теории каждым студентом
        static int[] timeZ; // то же для задачи
        static bool[] sdalT;// сдал теорию
        static bool[] sdalZ;//задачу

        static bool solve(int k)
        {
           // ???
        }

        static void Main(string[] args)
        {
            //ввод
            StreamReader r = new StreamReader("input.txt");
            string[] tmp = r.ReadLine().Split(' ');
            Count = Convert.ToInt32(tmp[0]);
            N = Convert.ToInt32(tmp[1]);
            string[] tmp1 = r.ReadLine().Split(' ');
            string[] tmp2 = r.ReadLine().Split(' ');
            timeT = new int[Count];
            timeZ = new int[Count];
            sdalT = new bool[Count];
            sdalZ = new bool[Count];

            for (int i = 0; i < Count; i++)
            {
                timeT = Convert.ToInt32(tmp1);
                timeZ = Convert.ToInt32(tmp2);
            }
            r.Close();
            //
            // решение
            if (solve(0))
            {
                // вывод ответа
            }
            else Console.WriteLine("Преподы не успеют принять экзамен за {0} минут", N);
            Console.ReadKey();
        }
    }

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог