Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 29.10.2020
Сообщений: 30

Послание внеземного разума 3

30.10.2020, 10:52. Показов 3867. Ответов 4

Студворк — интернет-сервис помощи студентам
Профессор Персиков снова на первых полосах новостных агрегаторов! Он сделал очередное гениальное предположение по поводу новой последовательности сигналов из глубин космоса.
- во-первых, говорит профессор, для подтверждения искусственности происхождения сигнала достаточно, чтобы он был периодическим с периодом, не превосходящим известную "константу Персикова" P.

- во-вторых, согласно закону диффузного рассеивания информации в некогерентных пространствах при нелинейно возрастающем коэффициенте Заальшютца-Персикова, качество сигнала падает при росте времени его передачи что означает, что некоторое окончание последовательности можно отбросить как недостоверно опознанное.

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

Формат входных данных

В первой строке содержится число P -- константа Персикова (1≤ P≤10.5)
В следующей строке содержится непустая последовательность, состоящая из малых букв латиницы - послание из космоса. Длина этой строки не превосходит 2*10^5

Формат выходных данных

Вывести одно число - минимальное количество символов, которые нужно удалить из конца последовательности, чтобы она стала периодической с периодом T, не превосходящим P. Последовательность имеет период T, если для любых двух её символов, расстояние между которыми кратно T верно, что они совпадают.

Пояснение к примерам

Рассмотрим исходную последовательность abcabcaabcabcabab. Если из неё ничего не удалять, то её наименьший период будет равен 15. Если удалить из её конца одну букву, то период abcabcaabcabcaba не изменится, если же удалить две буквы, период abcabcaabcabcab станет равен 10. Если удалить три буквы, период abcabcaabcabca равен 7. И этого достаточно для первого теста. Чтобы период не превосходил 3, придётся удалить из конца 10 символов и получить abcabca с периодом 3. Ну а период 2 можно получить только у начала ab, для этого придётся удалить 15 символов.

Sample Input 1:

8
abcabcaabcabcabab
Sample Output 1:

3
Sample Input 2:

3
abcabcaabcabcabab
Sample Output 2:

10
Sample Input 3:

2
abcabcaabcabcabab
Sample Output 3:

15
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2020, 10:52
Ответы с готовыми решениями:

Послание внеземного разума 2
Задача С1. Послание внеземного разума 2 Профессор Персиков снова получил послание внеземного разума. Он по-прежнему считает, что...

Послание внеземного разума 2
Нужна помощь, помогаю малому Профессор Персиков снова получил послание внеземного разума. Он по-прежнему считает, что доказательством...

Задача С. Послание внеземного разума
Помогите пж))) Задача С. Послание внеземного разума Сенсация! Известный специалист по UFO профессор Персиков получил послание от...

4
20 / 19 / 2
Регистрация: 19.06.2019
Сообщений: 45
30.10.2020, 19:50
Прочитайте про z-функцию строки
0
2 / 2 / 0
Регистрация: 27.10.2020
Сообщений: 8
30.10.2020, 20:04
Есть у кого получилось это задание?
0
9 / 9 / 0
Регистрация: 18.03.2020
Сообщений: 19
31.10.2020, 08:07
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
29
def per(s):
    k = []
    for i in range(1, len(s) + 1):
        if (i == len(s) and s[i - 1] == s[0]):
            k.append(i)
        for j in range(i, len(s)):
            if (s[j] != s[j - i]):
                break
            elif (s[j] == s[j - i] and j == len(s) - 1):
                k.append(i)
    return k
 
 
a = []
b = int(input())
k = input()
w = len(k)
for i in range(len(k)):
    a = per(k[:w - i])
    if a != []:
        f = min(a)
        if f <= b:
            print(i)
            break
    else:
        f = 1
        if f <= b and len(k[:w - i]) <= b:
            print(i)
            break
У меня получился вот такой код но он валится по времени. Можно его как-нибудь оптимизировать?
1
0 / 0 / 0
Регистрация: 31.10.2020
Сообщений: 3
31.10.2020, 08:18
egornak,
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
p = int(input())
str = input()
substr = str
word = ""
resword = ""
found = False
for t in range(int(len(str))):
    if found == True:
        break
    substr = substr[0:-1]
    for i in range(int(len(str)/2)):
        word += str[i]
        if len(word)>p:
            word = ''
            i = 0
            word += str[i]
        wordlen = len(word)
        for k in range(len(substr)):
            if substr[k] != word[k % wordlen]:
                found = False
                break
            else:
                found = True
        if found == True:
            resword = word
            break
if found:
   print (len(str)- len(substr))
У меня получился такой, но тоже по времени валится.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2020, 08:18
Помогаю со студенческими работами здесь

Послание внеземного разума 3
Профессор Персиков снова на первых полосах новостных агрегаторов! Он сделал очередное гениальное предположение по поводу новой...

Послание внеземного разума 3
Профессор Персиков снова на первых полосах новостных агрегаторов! Он сделал очередное гениальное предположение по поводу новой...

Послание внеземного разума 2
Профессор Персиков снова получил послание внеземного разума. Он по-прежнему считает, что доказательством этого является его периодичность....

Период сообщения (Послание внеземного разума)
Задача С. Послание внеземного разума 3 Профессор Персиков снова на первых полосах новостных агрегаторов! Он сделал очередное...

Послание Аресибо
Имеется прямоугольное изображение, разбитое на единичные квадратики, размер этого изображения n \times mn× m, (5 \leq n, m5≤n,m). Каждый...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru