Заполните массив n * n 1 и 0 - PullRequest
0 голосов
/ 26 октября 2018

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

int Row = {2, 2, 2, 3};

int Column = {3, 2, 1, 3};

тогда возможное решение:
1 0 0 1
1 1 0 0
0 0 1 1
1 1 0 1

во-вторых, есть ли комбинация, в которой допустимое решениеневозможно, даже если сумма обоих массивов (столбца и строки) равна.В моем случае это должно быть верно, потому что 3 + 2 + 1 + 3 = 2 + 2 + 2 + 3, но есть ли случай, когда обе суммы равны, но все еще не существует стабильной комбинации.

1 Ответ

0 голосов
/ 28 октября 2018

Ответ, который я нашел, был жадным подходом, в котором отвечал на каждую подзадачу.Поэтому я иду столбец за столбцом и заполняю каждый столбец в зависимости от веса строки.
Помните, что индексирование начинается с 0
Я начинаю со столбца 0
, поскольку строка 3 имеет наибольшее значение (3), который я заполняюэто

0 0 0 0  
0 0 0 0  
0 0 0 0  
1 0 0 0 

теперь массив строк и столбцов выглядит следующим образом

row = {2,2,2,2}  
column = {2,2,1,3}  

Я продолжаю заполнять, пока не могу больше вставить больше, т.е. столбец [0] = 0

1 0 0 0  
0 0 0 0  
0 0 0 0  
1 0 0 0  

row = {1,2,2,2}  
column={2,2,1,2} 



1 0 0 0  
1 0 0 0  
0 0 0 0  
1 0 0 0



row = {1,1,2,2}  
column={2,1,1,2}

теперь, так как в столбце [0] == 0 я могу перейти к следующему столбцу и снова выполнить ту же процедуру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...