当前位置: 代码迷 >> 综合 >> ALGO-996试题 算法训练 车的放置
  详细解决方案

ALGO-996试题 算法训练 车的放置

热度:66   发布时间:2023-12-01 00:51:56.0

搜索回溯我现在花了很长时间理解了下但我还是写不出来

很苦恼感觉有一定思路了但是动手又不知道怎么写慢慢学吧

 

#include <bits/stdc++.h>
using namespace std;
int N;
long long ans = 1; //刚开始什么也不放也属于一种答案
bool visited[10];  //标志被放置的列
void dfs(int step) //表示从第step行开始放
{if (step > N)return; //如果超过规定的棋盘边界N,跳出。for (int i = 1; i <= N; i++){if (!visited[i]) //如果这一列没有被放置{visited[i] = true;  //在这个位置放置它ans++;              //该情况的答案+1dfs(step + 1);      //肯定不能在同一行放了,跳到下一行visited[i] = false; //回溯}}//dfs(step + 1); //这个地方我不太清楚为什么
}
int main()
{cin >> N;dfs(1); //从第一行开始搜cout << ans;return 0;
}

  相关解决方案