Я предполагаю, что вы запрашиваете некоторую оптимизацию, поскольку алгоритм обратного отслеживания такой, какой он есть.
Первое, на что нужно обратить внимание, это то, что вы можете разделить черно-белое - вы берете сумму B_i * W_j
, где i + j = N
. Вы также можете визуализировать диагонали в виде простой сетки (с ограничениями), так как это, вероятно, сделает код более компактным и, возможно, более простым для понимания. Другая оптимизация замечает, что цвет не обязательно имеет значение - результаты для некоторых черных могут использоваться для некоторых белых. Выясните, когда это произойдет, а когда нет.
Надеюсь, что это достаточно хороший импульс - должно быть достаточно для некоторых маленьких N.