Шахматное домино
Комплект шахматного домино состоит из 32 костяшек 2×1, каждый из квадратов которой окрашен в черный или белый цвет (часть костяшек состоит из двух белых квадратов, часть – из двух черных, а часть из одного белого и одного черного). Комплект такого домино выложен на шахматную доску. Разрешается поворачивать костяшки домино на 180 градусов (менять местами их квадраты), оставляя каждую костяшку на своем месте. Требуется выяснить, можно ли так повернуть часть костей домино, чтобы в каждом горизонтальном ряду были квадраты только одного цвета.
Входные данные
Вводится 8 строк по 8 чисел. Каждое число соответствует номеру доминошки, которая покрывает данную клетку. Число положительное, если квадрат доминошки белый и отрицательное — если черный.
Выходные данные
Требуется вывести одно слово – YES или NO (заглавными буквами).
Примеры
Ввод:
1 2 2 7 7 8 8 9
1 3 6 10 10 11 11 9
4 3 6 31 31 -24 23 -12
-4 -5 -5 30 -32 24 -23 12
28 29 29 -30 32 25 22 13
28 27 27 26 26 25 22 13
18 19 19 20 20 21 21 14
18 17 17 16 16 15 15 14
Вывод люди на любом из языков (Java,Python,C++)
Вот решение Python, но оно не правильное
import sys
MATRISA = []
for i in range(8):
MATRISA.append(list(map(int, input().split(
for i in range(7):
VAR1 = True
for j in range(7):
if MATRISA[i][j] // abs(MATRISA[i][j]) != MATRISA[i][j + 1] // abs(MATRISA[i][j + 1]):
VAR1 = False
if VAR1 == True:
continue
else:
for j in range(8):
if MATRISA[i][j] < 0:
t1 = MATRISA[i + 1][j]
t2 = MATRISA[i][j]
MATRISA[i][j] = t1
MATRISA[i + 1][j] = t2
VAR2 = True
for pop in range(7):
if MATRISA[i][pop] // abs(MATRISA[i][pop]) != MATRISA[i][pop + 1] // abs(MATRISA[i][pop + 1]):
VAR2 = False
if VAR2 == True:
break
else:
if j == 7:
print("NO")
sys.exit(0)
VAR3 = True
for j in range(7):
if MATRISA[7][j] // abs(MATRISA[7][j]) != MATRISA[7][j + 1] // abs(MATRISA[7][j + 1]):
mt2 = False
if VAR3 == True:
print("YES")
else:
print("NO")
1 байте - 8 бит;
1кбайте - 1024 байта.
1). Два варианта решения :
А ). Переведем объем сообщения из кбайт в биты: 2.5 * 2^13 = 20480.
Теперь найдем время: 20480/2560 = 8 (мин)
Как посчитать без калькулятора:
- Сначало представим число 2560 ,как 256 * 10.
- дальше представим число 256,как 2^8 ,а число 10 - 2 * 5.
Получится такой пример : 2.5*2^13/2^8*2*5 , дальше сокращаем наши двойки со степенями, получится 2.5*2^4/5 , тоесть зная свойства степеней : a^n/a^m= a^n-m , получается 2^13/2^9=2^13-9. Думаю тут все понятно... ну в итоге 2.5*2^4/5 =8 (мин).
б). Переведем скорость передачи 2560 из бит в байты : 2560бит/8 = 320 байт,а объем сообщения 2.5 из кбайт в байты : 2.5кбайт * 1024 = 2560 байт.
Ну дальше всё просто : 2560/320=8 (мин).
3 ). Объем сообщения переводим из Кбайт в биты тоесть: 225*2^13/14400=128.
А вторую задачу тебе правильно решили.
Вылить содержимое в 8 литровый кувшин
набрать воды в 3 литровый кувшин.
Вылить содержимое в 8 литровый кувшин
набрать воды в 3 литровый кувшин
Вылить содержимое в 8 литровый кувшин, оставив один литр в 3 литровом кувшине.
Опустошить 8 литровый кувшин
Вылить содержимое 3 литрового кувшина в 8 литровый
Набрать воды в 3 литровый кувшин
Вылить содержимое в 8 литровый кувшин
Набрать воды в 3 литровый кувшин
Вылить содержимое в 8 литровый кувшин
Вот весь алгоритм.
Поблагодари, если