Logo
(追記) (追記ここまで)

19883번 - Квадродерево 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB511100.000%

문제

Одной из проблем, которые приходится решать любому программисту, является нехватка памяти, которую может использовать программа. Часто, чтобы уменьшить объем используемой программой памяти, программисты используют различные структуры данных, одной из которых и является квадродерево.

Опишем суть этой структуры данных. Квадродерево позволяет нам представлять в памяти матрицу размера 2ドル^n\times{2^n},ドル состоящую из нулей и единиц. Все дерево состоит из ячеек, каждая ячейка отвечает за некоторую часть этой матрицы, при этом каждая часть является квадратом со стороной 2ドル^p$. Первая ячейка отвечает за всю матрицу.

Если все элементы квадрата, за который отвечает ячейка, имеют одинаковое значение (0ドル$ или 1ドル$), то в ячейке просто хранится эта информация. Если же внутри квадрата существуют хотя бы два различных элемента, то весь квадрат делится на четыре непересекающихся квадрата со стороной 2ドル^{p - 1},ドル после чего для каждой четверти создается отдельная ячейка, и ссылки на все четыре созданных ячейки записываются в ячейку, отвечающую за большой квадрат.

Правильное квадродерево для данной матрицы. \\Любой квадрат, у которого все четыре стороны выделены, является ячейкой квадродерева.

Далеко не всегда подобный способ хранения матрицы приводит к сокращению объема памяти. Но не во всех задачах требуется абсолютно точно хранить всю матрицу, не потеряв значения ни одного элемента. Иногда можно потерять часть информации. А именно, разрешается изменить значения не больше, чем $k$ элементов матрицы.

Выясните, какое минимальное возможное количество ячеек может быть в квадродереве, описывающем матрицу, получающуюся из данной изменением не более, чем $k$ элементов.

입력

Первая строка входного файла содержит два целых числа $t=2^n$ и $k$ --- размер матрицы и максимальное количество измененных ячеек соответственно (4ドル \le t \le 128,ドル 1ドル \le k \le t^2$).

Гарантируется, что $t$ является степенью двойки.

Следующие $t$ строк содержат по $t$ символов, каждый из которых является 0ドル$ или 1ドル$. Эти строки описывают заданную матрицу.

출력

Выведите в выходной файл одно целое число --- минимальное возможное количество ячеек в квадродереве, описывающем матрицу, получающуюся из данной изменением не более, чем $k$ элементов.

제한

예제 입력 1

4 2
0001
0010
0000
0010

예제 출력 1

9

힌트

В приведенном примере можно, например, заменить две верхних единицы на нули. После этого получается матрица

Для ее хранения с помощью квадродерева необходимо 9 ячеек: одна для всей матрицы, четыре для четырех квадратов 2ドル \times 2,ドル три из них содержат 0, а четвертый, соответствующий нижнему правому углу, разбивается еще на четыре.

출처

Olympiad > Russian Olympiad in Informatics > Russia High School Programming Contest > Russia High School Programming Contest 2011 F번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /