Форум » Обработка символьных строк » Задача № 3530 (А. Кабанов) » Ответить

Задача № 3530 (А. Кабанов)

kochurov: Добрый день! Решал задачу 3530: [quote]Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 10^6 символов. AF-подстроками назовём непрерывные непустые последовательности символов, начинающиеся символом A, и заканчивающиеся символом F (граничные символы входят в подстроку). Определите количество AF-подстрок длиной от 7 до 10 символов. [/quote] Интерпретировал слово "непрерывные" в условии задачи, как то, что подстроки не должны содержать внутри себя символы A и F. Результат не сошелся с ответом. После просмотра видео А.Кабанова (спасибо ему за его работу) с разбором 24 задач, правильный ответ 3703 удалось получить, приняв, что внутри подстроки могут содержаться символы A и F. Непонятно, как правильно слово "непрерывные" в условии задачи понимать.

Ответов - 36, стр: 1 2 3 All

cabanov.alexey: Непрерывные - символы идут подряд. Обращу ваше внимание, речь про начинается на A, заканчивается на F. Ограничений по символам внутри нет. Поэтому да, одна AF подстрока может быть внутри другой.

kochurov: Спасибо за ответ, но ясности мне он не прибавил. Что значит, идут подряд? Приведите пожалуйста, примеры где символы идут подряд и где не подряд.

kochurov: Ну вот смотрите, ниже несколько последних строк, выведенных программой, и в конце правильный ответ: ABBCBBCBAF ACECECBBBF AEECCBBCBF AEECBCBEEF AFBCBCEBCF ABCBCEBCBF ABBCEBCBAF AEBEEBEBEF AEBEBCEBCF ACBCECBCBF AECBCEBCEF ABBBEEBBCF AFBBBBBBCF AFBEBEBEBF 3703 Ответ правильный, а результирующие строки выглядят отнюдь не так, как вы пишете


kochurov: вот программа на PascalABC.NET: [pre2] Program Task24; { (№ 3530) (А. Кабанов) Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 10^6 символов. AF-подстроками назовём непрерывные непустые последовательности символов, начинающиеся символом A, и заканчивающиеся символом F (граничные символы входят в подстроку). Определите количество AF-подстрок длиной от 7 до 10 символов. Ответ: 3703 } begin var Str : string; Assign(input, '24-153.txt'); Readln(Str); var Count : integer := 0; for var i := 1 to Str.Length - 1 do Begin if Str[ i ] <> 'A' Then continue; // крутим цикл,пока не нашли A var AFStr := ''; for var j := i to Str.Length do // с того места, где нашли A, начинаем собирать строки, до тех пор, пока не встретится F Begin AFStr += Str[j]; if AFStr.Length > 10 Then Break; // длина собранной строки больше 10 - нет смысла дальше смотреть if Str[j] = 'F' Then if AFStr.Length in [7..10] Then Begin Inc(Count); Writeln(AFStr); End; // если собранная строка удовлетворяет условию, считаем ее End; End; writeln(Count); end. [/pre2]

cabanov.alexey: Я не понимаю вашей претензии, честно. Мне кажется, мы про разное разговариваем. Я повторю ещё раз. A и F могут быть внутри строки, запрета на это нет.

kochurov: cabanov.alexey пишет: Я не понимаю вашей претензии, честно. Мне кажется, мы про разное разговариваем. Я повторю ещё раз. A и F могут быть внутри строки, запрета на это нет. Претензии никакой нет, это же дискуссия, у нас тут истина рождается :) У меня тоже ощущение, что мы говорим про разное, вот я и хочу понять, о чем вы говорите. Хотя постойте. Пошел перечитывать ваши сообщения и не вижу вашего сообщения, что было между 13:25 и 13:54 На форуме сообщения теряются, надо кому-то претензию предъявить!

Поляков: kochurov пишет: На форуме сообщения теряются, надо кому-то претензию предъявить! Автор имеет возможность удалить свои сообщения.

kochurov: Поляков пишет: Автор имеет возможность удалить свои сообщения Жаль, что на экзамене нельзя будет вот так взять и исправить ответ, после того, как он был дан. Может быть тогда, вы, Константин Юрьевич, прокомментируете эту непрерывность из условия задачи? Раз вы приняли задачу на свой ресурс, значит, согласны с ее формулировкой?

Поляков: kochurov пишет: Может быть тогда, вы, Константин Юрьевич, прокомментируете эту непрерывность из условия задачи? Возможно, я не совсем понял суть обсуждения. Мне нечего добавить к пояснению автора - мы считаем все последовательности, в том числе и те, в которых внутри есть буквы A и/или F.

kochurov: Поляков пишет: Возможно, я не совсем понял суть обсуждения Что означает слово "непрерывные" в условии задачи? Как выглядят непрерывные последовательности? А как выглядят прерывные? Если это слово ничего не значит, зачем оно в условии задачи? Так принято в реальных задачах, которые будут на ЕГЭ? Надо к такого рода запутыванию готовиться? Или это особенность задачи от конкретного автора?

Поляков: kochurov пишет: Что означает слово "непрерывные" в условии задачи? Непрерывные последовательности - это последовательности идущих подряд символов. Я уточнил условия. Я могу построить последовательность, выбирая символы, например, через один. Такую последовательность можно было бы назвать "прерывной".

kochurov: Поляков пишет: Непрерывные последовательности - это последовательности идущих подряд символов. Я уточнил условия. Я могу построить последовательность, выбирая символы, например, через один. Такую последовательность можно было бы назвать "прерывной" Все, теперь понятно. Вопрос закрыт. Спасибо вам и автору задачи за вашу работу. Надеюсь, что и я потратил свое время не впустую, и это наше обсуждение кому-то поможет.

Поляков: kochurov пишет: Надеюсь, что и я потратил свое время не впустую, и это наше обсуждение кому-то поможет. Да, спасибо. Иногда мы живем в своем мире и какие-то термины для нас уже "плоть и кровь", в то же время другим они оказываются непонятными.

nikson: kochurov пишет: Жаль, что на экзамене нельзя будет вот так взять и исправить ответ, после того, как он был дан. Можно!!!! До завершения экзамена разрешено возвращаться к любой задаче и менять ответ.

mskorotkov: Условие действительно невозможно интерпретировать однозначно. "AF-подстроками назовём непрерывные непустые последовательности символов, начинающиеся символом A, и заканчивающиеся символом F" Если подстрока начинается с A и заканчивается с F как она может считаться пустой? А судя по ответу 155-ой задачи подстрока AF считается пустой. Этого я понять не могу, тем более, что в условии говорится, что "(граничные символы входят в подстроку)." Почему в решении 155 задачи переменной m (будущий ответ) изначально присваивается m = 1000000? В условии ни слова об ограничениях на длину строки. Кроме того, в условии нет однозначного и чёткого указания на то, нужно ли учитывать пересечения строк или нет. Если вы, как автор задачи, решили учитывать, то напишите об этом в условии. Какая-то битва экстрасенсов получается. Приходится гадать, а что именно имел ввиду автор.



полная версия страницы