当前位置: 首页 > news >正文

苏州保洁公司开荒保洁收费标准百度seo快速排名

苏州保洁公司开荒保洁收费标准,百度seo快速排名,网站设计与网页制作毕业论文,哪个网站做汽车保养比较好题目描述: 我们对八皇后问题进行扩展。 国际象棋中的皇后非常神勇,一个皇后可以控制横、竖、斜线等4个方向(或者说是8个方向),只要有棋子落入她的势力范围,则必死无疑,所以对方的每个棋子都要…

题目描述:

我们对八皇后问题进行扩展。

国际象棋中的皇后非常神勇,一个皇后可以控制横、竖、斜线等4个方向(或者说是8个方向),只要有棋子落入她的势力范围,则必死无疑,所以对方的每个棋子都要小心地躲开皇后的势力范围,选择一个合适的位置放置。如果在棋盘上有两个皇后,则新皇后控制的势力范围与第一个皇后控制的势力范围可以进行叠加,这样随着皇后数量的增加,皇后们控制的范围越来越大,直至控制了棋盘中全部的格子。

现在我们关心的是,如果在 N×N 的棋盘上放入 M 个皇后(M个皇后相互之间不能冲突)控制棋盘中的格子,则共有多少种不同的放置方法?

输入:N (N <= 10)  M (M <= N)

输出:如果将 M 个皇后放入 N×N 的棋盘中可以控制全部棋盘中的格子,则不同的放置方法的数量

测试输入期待的输出时间限制内存限制额外进程
测试用例 1以文本方式显示
  1. 2 1↵
以文本方式显示
  1. 4↵
1秒64M0
测试用例 2以文本方式显示
  1. 3 1↵
以文本方式显示
  1. 1↵
1秒64M0

C++代码 

#include <iostream>
#include <vector>using namespace std;int totalSolutions = 0; // 用于记录不同的放置方法的数量// 检查当前位置是否安全
bool isSafe(int row, int col, const vector<string>& board, int N) {// 检查列for (int i = 0; i < row; ++i) {if (board[i][col] == 'Q') {return false;}}// 检查左上对角线for (int i = row, j = col; i >= 0 && j >= 0; --i, --j) {if (board[i][j] == 'Q') {return false;}}// 检查右上对角线for (int i = row, j = col; i >= 0 && j < N; --i, ++j) {if (board[i][j] == 'Q') {return false;}}return true;
}bool checkControl(const vector<string>& board, int N) {for (int i = 0; i < N; ++i) {for (int j = 0; j < N; ++j) {if (board[i][j] == '.') {// 检查当前空点是否被控制bool controlled = false;// 检查列for (int k = 0; k < N; ++k) {if (board[k][j] == 'Q') {controlled = true;break;}}// 检查行for (int k = 0; k < N; ++k) {if (board[i][k] == 'Q') {controlled = true;break;}}// 检查左上对角线for (int k = i, l = j; k >= 0 && l >= 0; --k, --l) {if (board[k][l] == 'Q') {controlled = true;break;}}// 检查右上对角线for (int k = i, l = j; k >= 0 && l < N; --k, ++l) {if (board[k][l] == 'Q') {controlled = true;break;}}// 检查左下对角线for (int k = i, l = j; k < N && l >= 0; ++k, --l) {if (board[k][l] == 'Q') {controlled = true;break;}}// 检查右下对角线for (int k = i, l = j; k < N && l < N; ++k, ++l) {if (board[k][l] == 'Q') {controlled = true;break;}}if (!controlled) {// 如果有任何空点没有被控制,则返回falsereturn false;}}}}// 所有空点都被控制,返回truereturn true;
}// 递归解决问题
void solveNQueensUtil(int row, int N, int M, vector<string>& board) {if (row == N) {if (M == 0 && checkControl(board, N)) {totalSolutions++; // 找到一个解决方案}return;}// 尝试在当前行的每一列放置皇后for (int i = 0; i < N; ++i) {if (isSafe(row, i, board, N)) {board[row][i] = 'Q'; // 放置皇后solveNQueensUtil(row + 1, N, M - 1, board); // 递归到下一行board[row][i] = '.'; // 回溯,移除皇后}}// 如果当前行不放置皇后,也递归到下一行solveNQueensUtil(row + 1, N, M, board);
}// 解决N皇后问题
int solveNQueens(int N, int M) {vector<string> board(N, string(N, '.'));solveNQueensUtil(0, N, M, board);return totalSolutions;
}int main() {int N, M;cin >> N >> M;cout <<  solveNQueens(N, M) << endl;return 0;
}

http://www.ritt.cn/news/21310.html

相关文章:

  • 电商网站建站开发语言学生班级优化大师
  • wordpress发表的文章点不开seo上海优化
  • 购物网站建设流程关键词推广效果分析
  • 最新军事新闻军事最新新闻短视频seo营销
  • 期货做程序化回测的网站地推接单正规平台
  • 网站做管制户外刀具如何找友情链接
  • 龙华做棋牌网站建设哪家便宜91手机用哪个浏览器
  • 免费b2b平台都有哪些网站事件营销的案例有哪些
  • 公司网站怎么做简介上海网络营销上海网络推广
  • 网站建设的整体流程有哪些?如何快速搭建网站
  • ccg 搭建wordpressseo站长工具推广平台
  • 武汉 光谷 网站建设亚马逊seo是什么意思
  • 丰富网站内容怎么推广app让人去下载
  • wordpress 更新官网seo哪家公司好
  • 新创建的网站百度seo网络营销书
  • 时代创信网站设计 北京徐州百度seo排名
  • 政务公开加强网站规范化建设被代运营骗了去哪投诉
  • 百度网站权重排行自媒体seo是什么意思
  • 易企秀可以做微网站吗google国际版入口
  • 武汉网站定制vue seo优化
  • 北京网站备案号竞价推广开户
  • 中企动力网站合同免费数据统计网站
  • 深圳做营销网站建设2022年seo最新优化策略
  • h5制作网站开发今日热点新闻排行榜
  • 做外贸的网站都有哪些网课培训机构排名前十
  • 哈尔滨住建局网站首页网络营销方式方法
  • 门户网站建设和运行保障招标文件seo海外
  • 建设推广营销型网站应该注意什么百度浏览器官网入口
  • php 网站共享变量搜索引擎是什么意思啊
  • ui网页设计比较好培训机构武汉网站建设方案优化