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

У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек

05.10.2023, 21:50. Показов 3344. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек. Алиса хотела раскрасить каждую клеточку в белый или черный цвет так, чтобы клеточки разных цветов чередовались. Но после того, как вся полоска была раскрашена, выяснилось, что Алиса ошиблась, и существует ровно две непересекающихся пары соседних клеточек, раскрашенных в один цвет. Отметим, что три и более клеток подряд не могут иметь один цвет. Чтобы исправить свои ошибки, Алиса решила разрезать полоску в двух местах, переставить и возможно развернуть полученные три части, а затем склеить их. На рисунке ниже показаны два примера разрезания и склейки полоски.
Напишите программу, которая определит, сможет ли Алиса указанным способом сделать полоску из клеточек чередующихся цветов и, если это возможно, то составит схему разрезания существующей полоски на три кусочка и склейки этих кусочков. Полученная полоска может начинаться как с клетки белого, так и черного цвета. Если требуемую полоску можно получить различными способами, то в качестве ответа можно взять любой из них.
Формат входных данных
На вход подается одна строка, описывающая вид исходной полоски. Строка состоит из символов "w" и "b", обозначающих клетку белого и черного цвета соответственно. Длина строки не превосходит 1000. Гарантируется, что строка имеет вид, описанный в
условии задачи.
Формат выходных данных
Если составить полоску из клеток чередующихся цветов невозможно, то программа должна вывести единственное слово "no" (без кавычек). В противном случае вывод должен содержать ровно три строки, каждая из которых описывает кусочек исходной ленты в виде трех чисел. Первое и второе число задают номера начальной и конечной клетки кусочка соответственно. Третье число может иметь одно из двух значений - О или 180 в зависимости от того, поворачивается кусочек на 180 градусов или нет. Строки должны следовать в порядке склейки кусочков слева направо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2023, 21:50
Ответы с готовыми решениями:

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

Полоска бумаги имеет размеры A × B. Каждый раз от нее отрезается квадрат максимального размера до тех пор, пока не получится квадрат.
Ограничение по времени: 1 секунда Ограничение по памяти: 64 мегабайта Полоска бумаги имеет размеры A × B. Каждый раз от нее...

Есть полоска бумаги шириной a и длиной b см. На какое максимальное количество квадратиков размером a x a см можно ее разрезать? Входные данные вводятс
Есть полоска бумаги шириной a и длиной b см. На какое максимальное количество квадратиков размером a x a см можно ее разрезать? Входные...

12
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
05.10.2023, 22:46
Python
1
2
3
4
5
6
7
8
9
10
11
s = input('s = ')
pos = []
for i in range(len(s)-1):
    if s[i] == s[i+1]:
        pos.append(i+1)
if pos[0]%2 != pos[1]%2:
    print('no')
else:
    print(1, pos[0], 0)
    print(pos[0]+1, pos[1], 180)
    print(pos[1]+1, len(s), 0)
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
06.10.2023, 08:42
idealist, s = 0110110
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
06.10.2023, 13:42
Да, пардон, вот так вроде правильнее:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
s = input('s = ')
pos = []
for i in range(len(s)-1):
    if s[i] == s[i+1]:
        pos.append(i+1)
L = pos[0] % 2 == 0
M = (pos[1] - pos[0]) % 2 == 0
R = (len(s) - pos[1]) % 2 == 0
if M or L and R:
    print(1, pos[0],        [0,180][not M])
    print(pos[0]+1, pos[1], [0,180][M])
    print(pos[1]+1, len(s), [0,180][not M])
else:
    print('no')
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
06.10.2023, 15:22
idealist, у вас строка задается в двоичном виде?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
06.10.2023, 17:17
Цитата Сообщение от isaak Посмотреть сообщение
у вас строка задается в двоичном виде?
Вводится строка символов. Для обозначения белого и черного цветов можно использовать любые два разных символа.
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
06.10.2023, 17:57
Цитата Сообщение от idealist Посмотреть сообщение
Для обозначения белого и черного цветов можно использовать любые два разных символа.
Какие конкретно символы? Буквы или цифры? Если цифры, то в каком исчислении?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
06.10.2023, 18:02
Цитата Сообщение от isaak Посмотреть сообщение
Какие конкретно символы?
Ну, буквы или цифры какие-нибудь...

Цитата Сообщение от isaak Посмотреть сообщение
Если цифры, то в каком исчислении?
Ну, это же символьная строка. При чем здесь исчисления? Не усложняйте!
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
06.10.2023, 18:19
Смотрите ввожу буквы, выходят ошибки. Ввожу цифры, тоже выходят ошибки.
Миниатюры
У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек   У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек   У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек  

У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек   У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек  
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
06.10.2023, 18:22
Да и в двоичном исчислении тоже выдает ошибки.
Миниатюры
У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек   У Алисы есть полоска бумаги, расчерченная на клеточки. Полоска имеет ширину в одну клеточку и длину в п клеточек  
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
06.10.2023, 21:46
Цитата Сообщение от isaak Посмотреть сообщение
выдает ошибки
Ну, по условию
Цитата Сообщение от itbortnik Посмотреть сообщение
существует ровно две непересекающихся пары соседних клеточек, раскрашенных в один цвет
т.е. ваша строка должна быть заполнена чередующимися символами, но ровно два раза два символа в строке стоят рядом. Три одинаковых не могут идти подряд.
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
06.10.2023, 22:25
Значит минимальная строка должна быть 8 символов?

Добавлено через 9 минут
Z:\Python\p2061\venv\Scripts\python.exe Z:\Python\p2061\venv\Cell.py
s = bwwbbwwb
1 2 0
3 4 180
5 8 0
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
06.10.2023, 22:28
Цитата Сообщение от isaak Посмотреть сообщение
Значит минимальная строка должна быть 8 символов?
Не, 4: 1100

Цитата Сообщение от isaak Посмотреть сообщение
bwwbbwwb
А здесь три пары равных соседей, а допускается ровно две. Чтобы при двух разрезах получились три корректные части.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2023, 22:28
Помогаю со студенческими работами здесь

Полоска
У меня проблема На одном кадре уменя есть полоска и кнопка. Начальная ширина полоски = 1. Но прина жатие на кнопку полоса увиличивает...

Полоска
Готовлюсь к Муниципальному Этапу по информатике и увидел вот такую задачку, как я понимаю она на рекурсию, но не знаю как решить :wall: ...

Полоска
Есть задание, которое я не могу понять: Задана полоска длиной 2^k клеток и шириной в одну клетку. Полоску сгибают пополам так, чтобы...

Градиентная полоска
имеем код: <? echo "<table rules=none border=1;><tr>"; $rd = 88; $em = 100 - $rd; $x = 0; $y = 0; while ($x<$rd) { echo...

полоска в Chrome
только-что открыл Хром и заметил черную тоненькую полоску внизу: пробовал переустановить и отключать расширения - ничего не...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 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
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru