ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
Информатика
>>
Книги, журналы
>>
Беров В., Лапунов А., Матюхин В., Пономарев А., Особенности национальных задач по информатике
главы:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Версия для печати
Убрать все задачи Булевой функцией называется функция, принимающая одно из логических значений TRUE или FALSE и зависящая от некоторого (быть может, нулевого) количества аргументов, каждый из которых также может принимать любое из значений TRUE или FALSE. Любая булева функция однозначно задается своей таблицей истинности, в которой для каждого возможного набора значений аргументов указано значение функции. Например, x AND y – булева функция от двух аргументов. Ее таблица истинности выглядит так: Если договориться, что наборы значений аргументов в таблице располагаются в лексикографическом порядке, то функция AND однозначно задается третьим столбцом таблицы – строкой 0001. Аналогично, каждой булевой функции от k аргументов можно поставить в соответствие строку из нулей и единиц длины 2k. Задан набор из N+1 булевой функции (f, f1, f2, ..., fN). Напишите программу,
которая определяет, можно ли функцию f выразить через функции f1, f2, ..., fN, и
если такие представления возможны, то находит кратчайшее по числу символов
среди них.
|
Страница: << 6 7 8 9 10 11 12 >> [Всего задач: 67]
Входные данные В первой строке входного файла содержится целое число N (1 ≤ N ≤ 30), в каждой следующих N строк – координаты левого нижнего угла (x, y) очередного из квадратиков (0 ≤ x, y ≤ 95). Выходные данные Выведите в выходной файл координаты точек искомого пути, в которых меняется направление движения (включая начальную и конечную точки). Порядок точек в выходном файле должен соответствовать порядку точек в пути. Пример входного файла 5 5 5 5 15 15 10 15 20 90 90 Пример выходного файла 0 0 5 10 20 20 95 90 100 100
Любая булева функция однозначно задается своей таблицей истинности, в которой для каждого возможного набора значений аргументов указано значение функции. Например, x AND y – булева функция от двух аргументов. Ее таблица истинности выглядит так: Если договориться, что наборы значений аргументов в таблице располагаются в лексикографическом порядке, то функция AND однозначно задается третьим столбцом таблицы – строкой 0001. Аналогично, каждой булевой функции от k аргументов можно поставить в соответствие строку из нулей и единиц длины 2k. Задан набор из N+1 булевой функции (f, f1, f2, ..., fN). Напишите программу,
которая определяет, можно ли функцию f выразить через функции f1, f2, ..., fN, и
если такие представления возможны, то находит кратчайшее по числу символов
среди них.
Моделью такого предложения (не удовлетворяющей лишь свойству
правдивости) может служить такой текст:
Сканер, считывая номер, преобразовывает горизонтальные и вертикальные линии в символы | (ASCII-код 124) и _ (ASCII-код 95) соответственно. В результате сканирования выдается картинка, составленная из этих символов и пробелов. Пример правильного изображения цифр после сканирования приведен в примере входного файла. К сожалению, иногда сканер допускает ошибки, и некоторые линии могут
пропадать. Вы должны написать программу, которая восстанавливает исходный
номер чека, считая выполненными следующие условия: _ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| | |_ _| | _||_| ||_| _| Пример выходного файла 123456789
<Дата> <Дата> + <Сдвиг> <Дата> - <Сдвиг> <Дата> - <Дата> Здесь <Дата> задается в одном из следующих трех форматов: А) дд.мм.гггг (например, 21.06.1998 ). В этой записи день и месяц задаются в точности двумя десятичными цифрами, год – ровно четырьмя. Б) д месяца г года (например, 21 июня 1998 года ). В этом формате могут присутствовать ведущие нули (например, 01 июня 198 года ). В) сегодня – текущая дата, установленная в компьютере. <Сдвиг> задается в виде [L лет ] [M месяцев ] [N недель ] [D дней ]. Квадратные скобки здесь означают, что некоторые из указанных четырех составных частей могут опускаться (но не все сразу). Слова «лет», «месяцев», «недель», «дней» склоняются по правилам русского языка: 1 год, 5 лет, 2 месяца, 5 месяцев и т.д. Значением выражений первых трех типов является дата. В случае
выражения первого типа значением является сама <Дата>. В случае выражений
второго и третьего типа вычисление искомой даты происходит следующим
образом: сначала прибавляется (либо вычитается) L лет, затем M месяцев, после
чего N недель и, наконец, D дней. Если в течение этого процесса получается
несуществующее число месяца, то берется последнее число этого месяца (см.
пример). Результатом выражения четвертого типа является количество дней
между двумя указанными датами.
Страница: << 6 7 8 9 10 11 12 >> [Всего задач: 67] |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|