2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
1 | |
Найти max количество подряд идущих элементов последовательности, которые делятся на одно и то же натуральное число19.07.2021, 13:31. Показов 5161. Ответов 20
Метки нет (Все метки)
Забавная игра
Вы с друзьями играете в следующую игру. Друзья пишут на доске подряд N натуральных чисел. Ваша задача — найти как можно больше подряд идущих чисел, которые бы делились на одно и то же число, большее 1. Так как вручную искать ответ сложно, вы решили написать программу, которая сделает работу за вас. Входные данные В первой строке входных данных задано число N(1 ≤ N ≤ 100000). Во второй строке записано через пробел N целых чисел A1...AN(1 ≤ Ai ≤ 1000, 1 ≤ i ≤ N). Это те самые числа, которые написали ваши друзья. Они даны в том же порядке, в котором они расположены на доске. Выходные данные Ваша программа должна вывести одно целое число — наибольшее количество подряд идущих чисел заданной последовательности, которые бы делились на одно и то же натуральное число, большее 1. Примеры Ввод 3 6 10 15 Dsdjl 2
0
|
19.07.2021, 13:31 | |
Ответы с готовыми решениями:
20
Найти как можно больше подряд идущих чисел, которые бы делились на одно и то же число, большее 1. Найти количество простых элементов последовательности идущих подряд Найти максимальное число идущих подряд равных элементов последовательности Найти в последовательности, количество пар подряд идущих отрицательных элементов |
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
19.07.2021, 18:49 | 3 |
Боюсь не поможет.
dmitrii2000, вроде можно за n*log*log решить, если написать бинарный поиск по ответу + дерево отрезков на нод. А можно перебрать все простые числа до 1000, их около 100, и для каждого числа найти максимальный отрезок, в котором каждый элемент делится на это число. Потом выбрать наибольший и вывести. Это уровень ЕГЭ, вы справитесь. Нет, код я вам не отправлю, мне это неинтересно писать.
1
|
Диссидент
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
19.07.2021, 22:37 | 4 |
почему же? Если бы ТС ответил на мой вопрос, мы бы с ним с грехом пополам набросали бы простенький код. И моя цель - заставить его немножко попытаться думать своей головой, а не ждать готового решения. Помочь, научить - рад. Делать за него - не интересно.
С вами полностью солидарен.
0
|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
20.07.2021, 13:38 [ТС] | 5 |
Скиньте код пожалуйста
0
|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
||||||
20.07.2021, 14:22 [ТС] | 7 | |||||
Помогите пожалуйста код не проходит по времени
0
|
Диссидент
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
20.07.2021, 16:55 | 8 |
Это зачем? Числа в задаче совсем не большие. Достаточно int
Добавлено через 9 минут Код, похоже, рабочий. Сам писал? Но слишком лобовой. Тут потоньше надо... Добавлено через 2 часа 16 минут Один из путей оптимизации кодаЖ Во внешнем цикле пропускать a[i], взаимно простые с те, которое нарушило делимость.... Все равно от них ничего хорошего ждать не приходится...
0
|
Модератор
|
|
05.08.2021, 08:25 | 9 |
Что то пришла в голову мысль:
1. в массиве искать НОД двух соседних чисел массива и тут же перезаписывать (заменять элемент на НОД) массив, который при этом уменьшится на 1 элемент. 2. операцию повторять пока все элементы массива не станут равны 1 или до сокращения длины массива до 1. 3. количество итераций и будет ответом. 4. для оптимизации пропускать элементы с 1, сокращать массив слева и справа при равенстве элементов 1.
1
|
Модератор
|
|
05.08.2021, 13:27 | 11 |
Да, похоже, у меня не лучший вариант. А других собственных пока и нет.
Согласен с LegionK - можно воспользоваться ограниченным диапазоном элементов массива А вот вторую идею не понял
0
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
16.08.2021, 18:20 | 13 |
Если все числа из подотрезка l...r делятся на какое-то число большее 1, то это значит, что нод всех элементов из этого отрезка будет больше единицы. Такой отрезок пусть назовем хорошим.
Т.к если в массиве присутствует хороший отрезок длины k, то будут присутствовать и все отрезки длины 1,2,...k-1, (хотя бы как подотрезки этого подотрезка). Соответственно если обозначить функцию f(t) как "присутствует ли хороший отрезок длины t в массиве", то для значений t от 1 до n значения f(t) будут : 1, 1, 1, 1, 1....,1, 0, 0, 0, 0, 0...... Вот ту последнюю единицу нам и надо найти. Сделать это можно при помощи бинарного поиска. Всё что осталось - написать функцию f. То есть уметь проверять, есть ли у нас в массиве хороший подотрезок нужной длины. Пусть нам дано число k и нужно проверить, есть ли хороший отрезок длины k. Можно идти по массиву слева направо и для каждого i проверять, подходит ли нам отрезок i...i+k при помощи дерева отрезков на нод. Ну в целом всё. Для данной задачи это излишне и асимптотика будет n*log*log*log. Это >= n*1000, но это все равно на порядок-два меньше, чем n*n. Решается эта задача как я написал выше про простые числа. Не хотел вам отвечать потому что идея эта здесь ненужная и заметил я это просто так, но недавно увидел задачу сводящуюся к этой, а именно к вот этому методу (а не первому, потому что нету ограничения такого маленького на сами числа массива) и подумал, что вам, может быть, будет все же интересно. Вот задача https://codeforces.com/contest/1549/problem/D чтобы решение посмотреть в правом нижнем углу "разбор задач". Там предлагается вместо дерева отрезков использовать разреженную таблицу, чтобы от одного логарифма в произведении избавиться, но я эту структуру не знаю.
1
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
17.08.2021, 02:10 | 15 |
Байт, Да, как обычный бинарный поиск.
0
|
Вездепух
12812 / 6684 / 1800
Регистрация: 18.10.2014
Сообщений: 16,935
|
||||||
17.08.2021, 05:31 | 16 | |||||
Сразу ясно, что в качестве делителей нужно рассматривать только простые числа. В указанном димпазоне простых чисел немного. В чем проблема найти самый длинный отрезок делимости за один проход лобовым алгоримом? К чему тут какой-то бинарный поиск? Чего в чем?
0
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
17.08.2021, 09:29 | 17 |
...
0
|
Вездепух
12812 / 6684 / 1800
Регистрация: 18.10.2014
Сообщений: 16,935
|
|
17.08.2021, 17:56 | 18 |
По-прежнему не увидел в этой последовательности фраз ответа на свои вопросы: К чему тут какой-то бинарный поиск? Чего в чем?
Бинарный поиск производится по упорядоченной последовательности. Где здесь упорядоченная проследовательность? Упорядоченная проследовательность чего и как она упорядочена?
0
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
17.08.2021, 18:02 | 19 |
Я вам соболезную. Очень трагичная новость. Хотя никак не пойму почему мне должно быть не все равно, что кто-то не умеет читать, но я вам все равно соболезную на всякий случай.
0
|
TheCalligrapher
|
17.08.2021, 18:07
Найти max количество подряд идущих элементов последовательности, которые делятся на одно и то же натуральное число
#20
|
0
|
17.08.2021, 18:07 | |
17.08.2021, 18:07 | |
Помогаю со студенческими работами здесь
20
Найти максимальное количество элементов последовательности, идущих подряд и являющихся простыми числами Даны натуральное число n, символы s1,...,sn. Выяснить,верно ли,что в последовательности s1,...,sn имеются пять идущих подряд букв е Дано натуральное число. Определить количество нулей, идущих подряд в младших разрядах Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7 Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7 Найти количество и сумму тех чисел последовательности, которые делятся на 5 и не делятся на 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации
В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
|
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира
В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
|
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин
История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
|
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией
В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
|
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации
В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
|
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий
В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
|
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO
/ / https:/ / leetcode. com/ studyplan/ top-interview-150/
package topInterview
. . .
|
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
|
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
|
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
|
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
|
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации.
Исполнитель Чертежник работает на координатной плоскости, где может. . .
|