О мои глаза... road = [0]*k. Если k = 1 200 000, то sizeof(road) = sizeof(int) * k = 4800000 байт = ~4,5776367188 МБ памяти на 1 массив. При том, что 99% этого массива может и не использоваться.... Но код действительно эффективен, а принцип не сложен для понимания
Стандартные задачи я решаю через шаблон на Python:ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-zTLQRojahI0.html Но лучше перейдите на сайт, там шаблон мог быть немного подправлен с момента публикации видео: code-enjoy.ru/ege_po_informatike_2023_zadaniya_19_21_teoriya_igr_na_python/
Метод удобен и прост для понимания, но, к сожалению, из-за того, что в ходе анализа построенной цепочки непонятно, каковы длины процессов, легко допустить ошибку. Получается, лучше будет изображать не только связи между процессами, но и их длины. Казалось бы, получается диаграмма Ганта, какую можно построить в экселе, как обычно, но вот визуально легче понять, как нужно двигать процессы. Каждому свое, но я решаю задачи на подряд идущие процессы именно такой нарисованной цепочкой.
Очень понятно стало, когда начал разделять на разряд yes и no, а потом просто подставлять и подчеркивать. Сколько бы не решал - все правильно. У других смотрел - непонятно. Спасибо огромное!!
ничего себе. я просмотрела около пяти роликов на ютубе - совершенно ничего не поняла. Зашла на это видео - решаю задачу! Спасибо большое, ОГЭ послезавтра
Спасибо за жуткое (три вложенных IF) но всё-таки решение. Однако, скажите, с чего вы решили, что на строке 'ABBBBBBBBBBBBBC' ответ будет 2, а не 15 ? Разве символы не идут в алфавитном порядке? А такие символы, по-вашему, тоже не идут в алфавитном поряке: 'ABDGNPO' ? Но на них ваш ответ 6. Разве в условии что-то говорится про недопустимость повторов? - Нет, не говорится. Тогда в чём ваша логика?
Чтобы символы повторялись, обычно пишут "в алфавитном порядке (возможно с повторением символов)". В строке 'ABDGNPO' должен быть ответ 6, т.к. вот строка ABDGNP, где не более одной гласной. Буква O уже вторая гласная, тем более в алфавите она идёт перед P.
@@code-enjoy7630 В строке ABDGNP ответ, конечно, 6 - но символы в ней не идут строго по алфавиту в вашем понимании, раз уж в строке ABBBBBBBBBBBBBC они у вас не идут по алфавиту. В одном случае вы признаете алфавит, в другом не признаете. Как-то странно... Аргумент "обычно пишут" представляется крайне сомнительным, потому что он субъективный. Надо смотреть в условие конкретной задачи и не додумывать от себя то, чего там нет.
@@andynaz7044 Символы "ABDGNP" в моём понимании идут в алфавитном порядке, т.к. будет выполняться условие s[i]<s[i+1]. Если в задачке имеется ввиду с повторением, то в условии можно поставить s[i]<=s[i+1]
@@code-enjoy7630 Прекрасный ответ! Любопытно, что на прилагаемом к задаче файле ответ в любом случае будет 9, так как в нём присутствуют максимально длинные фрагменты обоих типов: FFFLLLRTW и DFGKMPQRY -- оба длины 9. Случайность? ;)
Примечание: Под данное условие может попасть и равнобедренная трапеция. Но в формулировка задачи это допускает, т.к. там сказано, "Определите количество строк таблицы, в которых четырёхугольник МОЖЕТ являться параллелограммом". Слово "может" не гарантирует, что четырёхугольник параллелограмм.
Яндекс-Учебник отнёс эту задачу по сложности к категории _Средняя_. Любопытно было бы посмотреть на их решение. ) Как по мне, так это одна из самых сложных 24-ых.
@@code-enjoy7630 Предлагаю для разнообразия ещё и рассмотреть решение, основанное на хитроумных заменах. Оно не выводит вот так прямо ответ, но выводит список наиболее подходящих фрагментов и их длин -- для визуальной оценки и выбора. s = open('24.txt').read() a, b = ' ', '' for c in s + a: b += a if a <= c else a + ' ' a = c for c in 'AEIOUY': b = b.replace(c, '@').replace('@@', '@ @') d = [s for s in b.split()] + [''] d.sort(key=len, reverse=True) for i in range(10): print(len(d[i]), d[i])
Здравтсвуйте Александр, хочу поделится находкой, есть такая команда как tracer(0) со значением ноль, которая пропускает момент отрисовки, и тогда все рисуется моментально. from turtle import * tracer(0) ------- написать её нужно в начале left(90) for i in range(2): forward(40*10) right(90) forward(20*10) right(90) right(90) for i in range(2): forward(40*10) left(90) forward(25*10) left(90) penup() for x in range(-10, 100): for y in range(-10, 100): setpos(x*10, y*10) dot(4, 'red') done()
Скорее всего, здесь имелось ввиду, что буквы в алфавитном порядке могут повторяться. Поэтому можно в основном условии написать if s[i] <= s[i+1] Последняя ветка else всё-таки должна быть вот такая: else: k=1 count=0 if s[i+1] in gl: count=1 inx=i+1 Символ был s[i+1], а станет s[i] и начнётся новая цепочка
в чем смысл видео? я понимаю гроб разобрать какой-нибудь, а тут шаблонное изи задание.. кто его выполняет вряд ли столкнуться со сложностями в этой задаче
когда я писал не стал прописывать на 23**0, потому что это 1, и x * 23**1 т.к это тоже самое, что x*23 , конечно, ваш вариант более понятен для восприятия Не прописывал из-за лени и опасений лишний раз сделать опечатку
Хочу спросить: сайт "kompege" лучше для подготовки чем "РЕШУ ЕГЭ" или нет, и больше-ли задачи на первом сайте похоже на задачи из банка фипи? Просто я не очень люблю "РЕШУ ЕГЭ", многих задач из сборника Ященко по математике нет на сайте РЕШУ ЕГЭ