Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035

Какое количество автобусов и машин нужно заказать, чтобы стоимость заказа была минимальной

16.11.2010, 21:34. Показов 1765. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
надо перевести группу из N человек. можно заказать автобус(вмещает 50 человек) и стоит A или машину(вмещает 4 человека) и стоит B. A>B; N не более 100000; A не более 1000. подсчитать какое количество нужно заказать автобусов и машин, чтоб стоимость заказа была минимальной.
программа собственно есть и работает, но когда N большое, долго думает(дается не более 2с на выполнение). можно ли сократить время выполнения программы?
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CLS
INPUT "n"; n
INPUT "a"; a
INPUT "b"; b
IF n < 1 OR n > 100000 OR b < 1 OR a < b OR a > 1000 THEN PRINT "ochsibka": END
IF n <> FIX(n) OR a <> FIX(a) OR b <> FIX(b) THEN PRINT "ochsibka": END
IF n / 50 <> FIX(n / 50) THEN n1 = FIX(n / 50) + 1: d1 = 1 ELSE n1 = n / 50
IF n / 4 <> FIX(n / 4) THEN n2 = FIX(n / 4) + 1: d2 = 1 ELSE n2 = n / 4
min = 1E38
FOR x1 = 0 TO n1
    FOR x2 = 0 TO n2
        l = (x1 * 50 + x2 * 4)
        IF l >= n AND l <= n + (l - n) THEN
            p = (x1 * a + x2 * b)
            IF p < min THEN min = p: k1 = x1: k2 = x2
        END IF
    NEXT
NEXT
m1 = (min - k2 * b) / a
m2 = (min - k1 * a) / b
PRINT m1; m2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2010, 21:34
Ответы с готовыми решениями:

Спланировать перевозки, чтобы стоимость была минимальной
В городе имеется 2 склада муки и 2 хлебозавода. Ежедневно с 1-го склада вывозится 50 т муки, а со второго – 70. Эта мука доставляется на...

Какое наименьшее число автобусов достаточно заказать?
3)Для поездки на Колыванский камнерезный завод администрация школы решила заказать автобусы. В такое далёкое автопутешествие собрались...

Найти номера предметов, которые нужно включить в груз, чтобы их суммарная стоимость была максимальна
Обращаюсь к гуру) Мозг уже не работает, нужна функция или хотя бы алгоритм. Есть товары с определенной стоимостью и весом, требуется их...

16
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
22.11.2010, 19:17  [ТС]
как можно сократить время работы программы? максимум 1-2сек
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 20:12  [ТС]
кто может помочь? помогите пожалуйста.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
03.12.2010, 20:53
Судя по тому, что есть ограничения по времени, это олимпиадная задача. Олимпиадные задачи решаются в разделе фриланс. единственное, что я могу тебе посоветовать, - скомпилируй программу, интерпретатор вообще работает медленно, поэтому время резко увеличивается.
вместо
PureBasic
1
2
IF n / 50 <> FIX(n / 50) THEN n1 = FIX(n / 50) + 1: d1 = 1 ELSE n1 = n / 50
IF n / 4 <> FIX(n / 4) THEN n2 = FIX(n / 4) + 1: d2 = 1 ELSE n2 = n / 4
проще написать
PureBasic
1
2
n1=n\50
n2=n\4
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 21:08  [ТС]
это осталось от предыдущий версии, пытался хоть чуть уменьшить время работы, здесь не используется, забыл изменить. да инет олимпиада, там только bas файл высылаешь, с последующей онлайн проверкой. участие просто ради интереса, так что нет смысла в фрилансе. кстати а если не программу менять, а переписать в "более быстрый", язык программирования...
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
03.12.2010, 21:16
Напиши на паскале, как раз в 2 секунды уложишься, там компилятор
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 21:26  [ТС]
не изучал паскаль, могу еще с паскаля похожие на qb программы переделать. а на паскаль не пробовал.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
03.12.2010, 21:29
Попробуй QuickBasic 4. Быстрее под DOS не видел, можешь пошерстить инет на предмет подлинковки к нему файла для замены функций эмулятора FPU на исполнение непосредственно на FPU. При правильном создании exe файла - рвёт и мечет(при запуске не на ссаных DOSBOX'ах, а на "железе")...
Паскаль тоже вариант кстати, в опциях компилятора отключить создание debug кода.

Добавлено через 3 минуты
Проблема только в том, что ты говоришь: "там только bas файл высылаешь". А надо бы exe-шник ...
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 21:32  [ТС]
там высылаешь готовый bas файл программы. все остальное делается на сервере и не зависит от меня. кстати dos эмулятор не использую, пользуюсь qb64.

Добавлено через 1 минуту
пробовал и exe-шник отправить, но ругается что высылаешь бинарный файл.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
03.12.2010, 21:59
а файл *.pas пойдёт?
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 22:01  [ТС]
*.pas пройдет если выбрать что программа на паскале, ну соответственно и код должен быть на паскале.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
03.12.2010, 22:13
завтра напишу на паскале и посмотрю, сколько времени она будет идти. Сегодня уже ничего неохота
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.12.2010, 22:27  [ТС]
проще написать
проще, но тогда не проходит еще несколько тестов.
вот итоговый код
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CLS
OPEN "trans.in" FOR INPUT AS #1
INPUT #1, n, a, b
CLOSE #1
IF n / 50 <> FIX(n / 50) THEN n1 = FIX(n / 50) + 1 ELSE n1 = n / 50
IF n / 4 <> FIX(n / 4) THEN n2 = FIX(n / 4) + 1 ELSE n2 = n / 4
min = 1E38
FOR x1 = 0 TO n1
    FOR x2 = 0 TO n2
        l = (x1 * 50 + x2 * 4)
        IF l >= n AND l <= n + (l - n) THEN
            p = (x1 * a + x2 * b)
            IF p < min THEN min = p: k1 = x1: k2 = x2
        END IF
    NEXT
NEXT
m1 = (min - k2 * b) / a
m2 = (min - k1 * a) / b
OPEN "trans.out" FOR OUTPUT AS #2
PRINT #2, m1; m2
CLOSE #2
в 9 тестах прошло, в последних 3 "Превышено максимальное время работы"
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
06.12.2010, 19:20  [ТС]
Цитата Сообщение от кот Бегемот Посмотреть сообщение
завтра напишу на паскале и посмотрю, сколько времени она будет идти. Сегодня уже ничего неохота
ну так поможешь?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
06.12.2010, 20:17
Может нужно использовать другой алгоритм, было бы бредом давать задачу нерешаемую на языке который они допускают. В линейном программировании есть транспортные задачи, это правда пипец сколько надо читать и мозговать(область идущая следом за матем. статистикой).
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
07.12.2010, 16:43  [ТС]
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
Может нужно использовать другой алгоритм, было бы бредом давать задачу нерешаемую на языке который они допускают. В линейном программировании есть транспортные задачи, это правда пипец сколько надо читать и мозговать(область идущая следом за матем. статистикой).
из-за 21 балла(из 70) неохота делать программу с нуля.
будет побольше свободного времени попробую.
кому интересно вот сайт олимпиады
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
07.12.2010, 16:54
Жюри не гарантирует, что все задачи имеют решение на Turbo Pascal, Borland C/C++, Qbasic
От оно что...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2010, 16:54
Помогаю со студенческими работами здесь

Как нужно закодировать букву Г, чтобы длина кода была минимальной и допускалось однозначное разбиение кодированного сообщения на буквы?
41) Для передачи по каналу связи сообщения, состоящего только из букв А, Б, В, Г, решили использовать неравномерный по длине код: A=0,...

Определить, какое количество домов каждого типа нужно собрать, чтобы общее количество квартир в них было наибольшим
Из строительных деталей двух видов нужно собрать три типа домов сельского типа. Для сборки X-квартирного дома требуется A деталей первого и...

Поворот изображения чтобы потеря качества была минимальной
Добрый день! Хотелось бы услышать мнение умных и компетентных людей по следующему вопросу - каким образом лучше всего поворачивать...

Какое количество теплоты нужно сообщить 2 молям воз¬духа, чтобы он совершил работу
Какое количество теплоты нужно сообщить 2 молям воз¬духа, чтобы он совершил работу в 1000 Дж: а) при изотермичес¬ком процессе; б) при...

Разделить N камней на M куч так, чтобы разность между кучами была минимальной
Здравствуйте, прошу помочь с одной задачкой, по сути простой, но сложной для меня по реализации и в понимании. Задача: Имеется N...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru