Пусть дано множество из
for (int mask = 0; mask < 1 << n; ++mask) for mask in range(2 ** n):
а для определения, входит ли
Дано число
Ввод | Вывод |
---|---|
2 |
00 |
Грузоподъемность машины
Программа получает на вход целое число
Программа должна вывести единственное число — максимальную массу, которую можно увезти на машине.
Ввод | Вывод |
---|---|
10 |
9 |
Первая строка входных данных содержит число
Программа должна вывести номера мест багажа (числа от 1 до
Ввод | Вывод |
---|---|
5 |
1 3 |
Премьер-министр некоторого государства хочет составить новый кабинет министров. К составу нового кабинета есть следующие требования.
На рассмотрение премьер-министра поступило
Cначала вводится число
Выведите номера министров, которых необходимо назначить.
Решение этой задачи будет приниматься, если множества компетенций каждого министра также храняться в виде битовой маски, для проверки того, что выбранное подмножество министров содержит все компетенции необходимо взять побитовую дизъюнкцию их масок.
Ввод | Вывод |
---|---|
3 2 | 1 |
4 3 |
3 4 |
Дано выражение:
Посчитайте, сколькими способами в этом выражении можно заменить вопросительные знаки на знаки операций сложения и умножения так, чтобы выполнялось равенство.
Программа получает на вход числа
Выведите одно число — количество расстановок знаков сложения и умножения, дающих верное равенство.
Для вычисления значения арифметического выражения, записанного в строке, в Python можно использовать функцию eval.
Ввод | Вывод |
---|---|
2 4 |
2 |
Есть
Первая строка входных данных содержит количество людей
Матрица симметрична относительно главной диагонали, на диагонали стоят нули.
Выведите номера людей, входящих в максимальную клику. Нумерация начинается с 1.
Решение этой задачи будет приниматься, если граф также храниться в виде битовых масок (для каждой вершины храним маску вершин, с которыми она соединена). Для проверки того, что выбранное подмножество является кликой, необходимо сделать побитовую конъюнкцию масок.
Ввод | Вывод |
---|---|
5 |
2 3 5 |
Теорема Рамсея
гласит, что в любом достаточно большом полном графе, рёбра которого покрашены в два цвета,
обязательно найдётся полный подграф из
Наиболее известен наименьший нетривиальный пример этой теоремы:
в любой компании из 6 человек найдётся трое попарно знакомых
или найдётся трое попарно незнакомых, так как
По данному полному графу из
Первая строка входных данных содержит три числа
Матрица симметрична относительно главной диагонали, на диагонали стоят нули.
Если в данном графе есть полный подграф из
Если в данном графе есть полный подграф из
Ввод | Вывод |
---|---|
6 3 3 |
1 |
В городе
Вам необходимо расставить минимальное число стражников на площадях так, чтобы для каждой улицы нашёлся стражник, стоящий на площади в одном из её концов. То есть стражники должны контролировать все улицы.
Первая строка входных данных содержит два числа
Программа должна вывести номера площадей, на которых необходимо поставить стражников.
Ввод | Вывод |
---|---|
5 6 |
3 5 |
Импликация — логическая функция
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Теперь рассмотрим логическую функцию от
Постройте таблицу истинности данной функции. Программа получает на вход число
Ввод | Вывод |
---|---|
2 |
00 1 |
3 |
000 0 |
В ЕГЭ-2013 была такая задача. Решать её предполагалось аналитически, поэтому с переходом ЕГЭ в компьютерную форму такого рода задания потеряли смысл, но мы решим его при помощи компьютера.
Определите сколько существует различных наборов логических переменных
Здесь функция
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Программа получает на вход число
Ввод | Вывод |
---|---|
10 |
20 |
А вот задача 23 из ЕГЭ-2020 долго будоражила умы. Приведём пример такой задачи.
Рассмотрим
где
Найдите количество наборов переменных, для которых верны все эти уравнения.
Программа получает на вход числа
Ввод | Вывод |
---|---|
8 |
600 |
Две логические формулы называются эквивалентными, если на любом наборе переменных их значения равны. Вам даны две формулы, проверьте, эквивалентны ли они.
Первая строка входных данных содержит число x1
, x2
и т.д., операции
and
, or
и not
и круглые скобки. Выражение является корректным выражением
для языка Python.
Программа должна вывести YES
, если формулы эквивалентны или NO
в противном случае.
Указание. Воспользуйтесь функцией eval
языка Python, аргумент которой строка,
функция возвращает результат выражения, записанного в этой строке.
Ввод | Вывод |
---|---|
2 |
YES |
3 |
NO |
Вам дана произвольная логическая функция от
Первая строка входных данных содержит число
Программа должна вывести одну строку, содержащую некоторое корректное выражение
на языке Python. Выражение может содержать переменные x1
, x2
и т.д.,
операции and
, or
, not
и круглые скобки.
Выражение не обязательно должно быть кратчайшим, но оно не должно быть пустым,
также длина выражения не должна превышать
Ввод | Вывод |
---|---|
2 |
x1 or x2 |
2 |
x2 or not x1 |
1 |
not x1 |
Во втором примере задана импликация
В популярной кооперативной карточной игре Ханаби игроки держат в руках карты, показывая их другим игрокам, но не себе, а задача игроков при помощи подсказок объяснить друг другу, какие карты они держат в руках.
Карты бывают 25 различных видов: 5 различных цветов (обозначим их Red, Green, Blue, Yellow, White) и 5 различных значений (от 1 до 5). Карт одного вида может быть несколько.
Подсказки же бывают такие: “вот эти карты зелёные” или “вот эти карты — тройки”, при этом указывается на все карты данного цвета или на все карты данного значения.
Пусть у Аграфены на руках в конце игры оказалось несколько карт, и она даже в точности знает значения этих карт. Но она не знает, в каком порядке они находятся, то есть её неизвестна перестановка этих карт. Какое минимальное число подсказок должны дать Аграфене её партнёры (они видят её карты и их расположение), чтобы Аграфена смогла определить значение каждой карты в её руке?
Программа получает на вход строку, в которой записаны значения карт на руках у Аграфены. Каждая карта описывается двумя символами: цветом (R, G, B, Y, W) и значением (1, 2, 3, 4, 5). Описания карт разделены пробелом, карты могут повторяться, всего у Аграфены не более 100 карт в руках.
Программа должна вывести единственное число: минимальное количество подсказок, которое необходимо Аграфене для определения всех её карт.
Ввод | Вывод | Пояснение |
---|---|---|
R2 R2 |
0 |
Без подсказок Аграфена знает, что каждая карта в её руке — это R2 |
W5 G5 G2 B2 |
2 |
Нужно дать подсказку по цвету G и по значению 5 (или по цвету G и по значению 2). |
R2 G2 B2 Y2 W2 |
4 |
Все карты различаются только цветом, нужно дать 4 подскази про 4 любых цвета. |