Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/88: Рейтинг темы: голосов - 88, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 05.11.2021
Сообщений: 1

Космическая связь

05.11.2021, 18:02. Показов 18140. Ответов 60

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, натолкните на мысль

Космическая связь
В этой задаче от вас потребуется написать программу для составления расписания сеансов связи со спутником. Каждый сеанс заключается в обмене короткими сообщениями, поэтому мы считаем, что он происходит мгновенно. Поскольку ресурсы оборудования ограничены, следует стремиться к минимизации количества сеансов. Вместе с тем, интервал времени между сеансами не должен превышать d миллисекунд. Кроме того, существуют промежутки времени, в течении которых связь невозможна. При этом на границах промежутка мгновенный сеанс связи возможен. Расписание составляется на ttмиллисекунд. Первый сеанс должен обязательно состояться в момент 0, а последний — в момент t.

Рассмотрим пример. Пусть t=100, d=20 и задано 3 промежутка недоступности связи: (5;25), (27;40), (75;90)). Тогда потребуется восемь сеансов связи, которые можно провести в моменты времени 0, 5, 25,45, 65, 75,90,100. Конкретное расписание может быть другим, но в любом случае количество сеансов не может быть меньше восьми.


Ваша программа должна по имеющейся информации найти минимальное возможное количество сеансов связи.

Формат входных данных
В первой строке через пробел записаны три натуральных числа n, d и t — количество интервалов недоступности связи, максимальный интервал между между сеансами и время, на которое составляется расписание.
Далее в n строках заданы по два целых неотрицательных числа ai
и bi
— начало и конец каждого интервала недоступности связи. bi-ai

≤d. Интервалы недоступности связи не пересекаются, каждый следующий интервал начинается строго после окончания предыдущего. a_1


Формат выходных данных
Вывести одно число — количество сеансов связи в графике.


Sample Input:
3 20 100
5 25
27 40
75 90

Sample Output:
8
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2021, 18:02
Ответы с готовыми решениями:

Космическая связь
Космическая связь В этой задаче от вас потребуется написать программу для составления расписания сеансов связи со спутником. Каждый сеанс...

Космическая связь
В этой задаче от вас потребуется написать программу для составления расписания сеансов связи со спутником. Каждый сеанс заключается в...

Космическая связь
Здравствуйте! Такой вопрос. Если разместить спутник на НОО ~300 км, возможно ли с ним держать устойчивую, помехозащищённую связь на...

60
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 3
07.11.2021, 13:36
Студворк — интернет-сервис помощи студентам
anton78spb, 9.6 баллов прошло тестирование. Саму проверялку не кинем, это же олимпиадное задание
Миниатюры
Космическая связь  
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
07.11.2021, 14:16
Zeropus1, Проверьте.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n, d, t = map(int, input().split())
p =[list(map(int, input().split())) for i in range(n)]
 
c = 0
i = 0
r = 1
while c < t:
    r += 1
    c += d
    for j in range(i, n):
        if p[j][0] < c < p[j][1]:
            c = p[j][0]
            i = j
            break
 
print(r)
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 14:23
12 тестов
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 14:35
Zeropus1, я как понял тесты рандомные у меня было 8 баллов 2 раза , потом 9.6. Причем решение было одно и тоже ,либо они тесты поменяли
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
07.11.2021, 15:16
Zeropus1, Еще оптимизировал немного. Проверьте.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n, d, t = map(int, input().split())
p =[list(map(int, input().split())) for i in range(n)]
 
c = 0
i = 0
r = 1
 
while c < t:
    r += 1
    c += d
    while i < n and c > p[i][1]:
        i += 1
    for j in range(i, n):
        if p[j][0] < c < p[j][1]:
            c = p[j][0]
            i = j
            break
 
print(r)
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 15:30
какое у тебя направление?

P.S. в вк проще общаться

Добавлено через 38 секунд
и как тут отвечать на сообщения?
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 15:31
Цитата Сообщение от sq88d Посмотреть сообщение
какое у тебя направление?
умный город

Добавлено через 1 минуту
Цитата Сообщение от sq88d Посмотреть сообщение
и как тут отвечать на сообщения?
выделяешь то на что нужно ответить (как ты это делаешь с копированием) и нажимаешь цитировать
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 15:33
у меня автоматизация бизнес-процессов

ты последние две не решил только из информатики?

Добавлено через 21 секунду
Цитата Сообщение от Zeropus1 Посмотреть сообщение
выделяешь то на что нужно ответить (как ты это делаешь с копированием) и нажимаешь цитировать
нашел, спасибо!
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 15:35
да 4 на 9.6 решил ,а 5 на 0 , остальые на 20
Цитата Сообщение от sq88d Посмотреть сообщение
ты последние две не решил только из информатики?
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 15:37
Цитата Сообщение от Zeropus1 Посмотреть сообщение
да 4 на 9.6 решил ,а 5 на 0 , остальые на 20
здорово, я 3 задачу на 10/20 решил
пишет, что последние 5 тестов - превышен лимит времени
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 15:56
sq88d, Zeropus1, а математику на сколько решили?
0
-18 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 15
07.11.2021, 15:57
на 100
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 15:57
Цитата Сообщение от IlyxM15 Посмотреть сообщение
sq88d, Zeropus1, а математику на сколько решили?
в моем профиле физика и информатика
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 15:58
anton78spb, тоже 12 из 25
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 15:59
62.5
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 15:59
Zeropus1, а понял
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 16:00
пробуйте O(t+n)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
n, d, t = map(int, input().split())
p = [tuple(map(int, input().split())) for _ in range(n)]
st = p[::-1]
curr = 0
res = 1
while curr < t:
    res += 1
    curr += d
    if st:
        while st and st[-1][1] < curr:
            st.pop()
        left, right = st[-1]
        if left <= curr < right:
            curr = left
            st.pop()
        elif curr >= right:
            curr = right
            st.pop()
print(res)
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
07.11.2021, 16:00
Python
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
n, d, t = map(int, input().split())
p =[list(map(int, input().split())) for i in range(n)]
 
c = 0
i = 0
r = 1
 
while c < t:
    r += 1
    c += d
 
    while i < n and c >= p[i][1]:
        i += 1
 
    if i == n:
        break
 
    if c > p[i][0]:
        c = p[i][0]
 
while c < t:
    r += 1
    c += d
 
print(r)
1
-18 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 15
07.11.2021, 16:02
Эта работает со всеми тестами???
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 16:03
[+] Test #1. OK
[+] Test #2. OK
[+] Test #3. OK
[+] Test #4. OK
[ ] Test #5. Runtime error
[ ] Test #6. Runtime error
[ ] Test #7. Runtime error
[ ] Test #8. Runtime error
[ ] Test #9. Runtime error
[ ] Test #10. Runtime error
[+] Test #11. OK
[+] Test #12. OK
[+] Test #13. OK
[ ] Test #14. Runtime error
[+] Test #15. OK
[ ] Test #16. Runtime error
[+] Test #17. OK
[+] Test #18. OK
[ ] Test #19. Runtime error
[+] Test #20. OK
[ ] Test #21. Runtime error
[ ] Test #22. Runtime error
[ ] Test #23. Time limit exceeded
[ ] Test #24. Runtime error
[ ] Test #25. Runtime error

11 of 25 test(s) passed.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2021, 16:03
Помогаю со студенческими работами здесь

Космическая связь
В этой задаче от вас потребуется написать программу для составления расписания сеансов связи со спутником. Каждый сеанс заключается в...

Космическая стрелялка
нужен исходный код игры,в поиске искал, не получилось найти,может у кого есть исходник или знает где можно найти,буду очень...

Космическая музыка
Всем привет. Подскажите пожалуйста, какие группы играют в космическом стиле, где главные темы песен: Sci-fi, научно-технический прогресс,...

космическая игра на C++
Всем привет, можете помочь сделать простенькую космическую игру чтобы самолет стрелял в сферы и при попадании они исчезали, а также счетчик...

Первая космическая скорость
Рассчитать первую космическую скорость планеты с определенным ускорением свободного падения.


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru