Здравствуйте, Трурль, Вы писали:
Т>На доске NxN расставить N ферзей так, чтобы они не били друг друга.
Т>N- большое, времени мало.
Довольно простенький алгоритм. Сперва алгоритм для четных N.
Начальная позиция (1, 0). с шагом по абциссе 2, а по ординате 1 выставляешь ферзей. Дойдя до конца доски по абциссе остается еще половина по ордиате. Осуществляется переход в точку (0, N/2) и с тем же шагом ставится остальные ферзи. Это все можно сделать и в цикле с интервалом от 0 до N/2
Далее алгоритм, если N — нечетно
Пусть доска — это матрица. Делается минор, без самых крайних ряда и столбца. На пересечении этих строки и столбца ставиться ферзь. В миноре по алгоритму, где N — четно расставляются ферзи.
P.S. нумерации строк и столбцов начинал с 0