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

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

05.11.2021, 18:02. Показов 18137. Ответов 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
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 16:06
Студворк — интернет-сервис помощи студентам
забыл проверить стек
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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()
        if st:
            left, right = st[-1]
            if left <= curr < right:
                curr = left
                st.pop()
            elif curr >= right:
                curr = right
                st.pop()
print(res)
1
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 16:09
anton78spb, юхуу поздравляю 24 из 25

Добавлено через 1 минуту
eaa, тоже 24 из 25
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 16:10
так же

Добавлено через 28 секунд
спасибо вам большое)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 16:15
последний тест d = 1.
так что пробуйте его отдельно обработать.
1
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
07.11.2021, 16:16
Что-то "сломался" форум, не могу перейти на третью страницу это темы. Нажимаю на нее, а перебрасывает в начало второй.

Добавлено через 33 секунды
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]
 
r += (t - c) // d
if (t - c) != d:
    r += 1
 
print(r)
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 16:18
anton78spb, [+] Test #1. OK
[ ] Test #2. Wrong answer
[ ] Test #3. Wrong answer
[+] Test #4. OK
[+] Test #5. OK
[+] Test #6. OK
[+] Test #7. OK
[+] Test #8. OK
[+] Test #9. OK
[+] Test #10. OK
[ ] Test #11. Wrong answer
[+] Test #12. OK
[+] Test #13. OK
[+] Test #14. OK
[+] Test #15. OK
[+] Test #16. OK
[+] Test #17. OK
[+] Test #18. OK
[+] Test #19. OK
[+] Test #20. OK
[+] Test #21. OK
[+] Test #22. OK
[ ] Test #23. Time limit exceeded
[+] Test #24. OK
[+] Test #25. OK
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 16:19
наверное так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n, d, t = map(int, input().split())
p = [tuple(map(int, input().split())) for _ in range(n)]
st = p[::-1]
curr = 0
res = 1
if d != 1:
    while curr < t:
        res += 1
        curr += d
        if st:
            while st and st[-1][1] < curr:
                st.pop()
            if st:
                left, right = st[-1]
                if left <= curr < right:
                    curr = left
                    st.pop()
                elif curr >= right:
                    curr = right
                    st.pop()
else:
    res += t
print(res)
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 16:23
сейчас проверим

Добавлено через 2 минуты
на 24
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 16:23
eaa, там 23 не проходит , time limit
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 16:28
ну или python не укладывается в 1 секунду считать 200 тыщ строк.
тогда нужно файлы прикрутить.
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 2
07.11.2021, 16:51
ребят,кто нибудь решал последнее задание ?я целый день сижу и все не правильно
0
0 / 0 / 0
Регистрация: 05.04.2020
Сообщений: 15
07.11.2021, 16:51
nnnnn12345, я тоже хз
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 17:00
я сижу щас бошку ломаю
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 2
07.11.2021, 17:01
понимаю,я вообще не очень сильна в этом
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.11.2021, 17:02
Ребзя, другие задачи обсуждают в других темах, а в этой теме только по этому вопросу.
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 21
07.11.2021, 17:02
[Реализация; геометрия]
Простая задача
В этой задаче не будет длинного условия и простого решения. Все будет наоборот. Требуется провести непрерывную линию произвольного вида из точки с координатами (x_1,y_1)(x
1

,y
1

) в точку с координатами (x_2,y_2)(x
2

,y
2

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

Формат входных данных
Каждый тест в этой задаче будет содержать nn запросов. 1\leq n\leq 1001≤n≤100. Натуральное число nn будет записано в первой строке. Далее в nn строках записаны запросы. Каждый запрос располагается в отдельной строке и состоит из четырех чисел x_1x
1

, y_1y
1

, x_2x
2

, y_2y
2

, которые задают координаты двух точек. Точки не совпадают. Координаты могут быть целыми или вещественными числами не более чем с 2 знаками после точки. Координаты не превосходят 10^910
9
по абсолютной величине. Если координата является целым числом, то ее запись не содержит десятичной точки.

Формат выходных данных
Требуется вывести ответы на запросы по одному ответу в каждой строке.

Методика проверки и пояснение к тесту
Программа проверяется на 10 тестах. Прохождение каждого теста оценивается в 2 балла. Тест из условия задачи при проверке не используется.

Следующие рисунки поясняют ответ к тесту. Обратите внимание, что никакой фрагмент линии не может лежать на сетке, так как в этом случае количество точек с целочисленной координатой будет бесконечно большим.

Sample Input:
2
-2 -0.5 0.5 1.5
0 -2 0 2
Sample Output:
3
5

помогите пожалуйста?
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 18:18
кто-нибудь решил задачу 4.4 в математике? (про Сашу, который купил 20 пирожков с мясом и 21 пирожок с капустой)
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 3
07.11.2021, 18:25
sq88d, 840 рублей, думаю решение расписывать нет смысла)

Добавлено через 2 минуты
Zeropus1, 4/20 получает, требует полной доработки
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
26
27
28
n = int(input())
p =[list(map(float, input().split())) for i in range(n)]
a = 0
i: int
for i in range(n):
    t = list(p[a])
    x1 = t[0]
    y1 = t[1]
    x2 = t[2]
    y2 = t[3]
    x = int(abs(x2 - x1))
    y = int(abs(y2 - y1))
    k = max([x, y])
    k = k + 1
    if x1 == x2 == y1 == y2:
        k = k - 1
    if x1 == x2:
        if y1 != int(y1):
            k = k + 1
        if y2 != int(y2):
            k = k + 1
    if y1 == y2:
        if x1 != int(x1):
            k = k + 1
        if x2 != int(x2):
            k = k + 1
    print(k)
    a = a + 1
0
4 / 9 / 2
Регистрация: 05.10.2020
Сообщений: 51
07.11.2021, 18:29
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 _ 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)
19.2 балла / 20
0
0 / 0 / 0
Регистрация: 07.11.2021
Сообщений: 8
07.11.2021, 18:42
Цитата Сообщение от montelnRoben Посмотреть сообщение
sq88d, 840 рублей, думаю решение расписывать нет смысла)
напишешь решение пж?)

Добавлено через 11 минут
Как упоминать пользователя?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2021, 18:42
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Переходник 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