Мое решение имеет 2 предопределенные логики, в строке есть только одна королева, а в столбце только одна королева.Существует одномерный массив, длина которого равна 8. Все значения массива устанавливают один из 0-7, но все значения используются ровно один раз (перестановка значений, которые 0-7)6 в первой строке arr [1] = 3 означает королеву в столбце 4 во второй строке, просто управляйте значениями перекрестного нарушения при проверке массива, нет необходимости проверять строку или нарушение строки.Все функции перестановки и нарушения, все что вам нужно, (C ++ STL имеет функции перестановки, которые просто должны пересекать функции нарушения)