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

wordpress制作小说站教程东莞网站营销策划

wordpress制作小说站教程,东莞网站营销策划,站长统计 网站统计,网站正在建设 h5模板题目: 题目解析: 在n*n的矩阵内描述棋盘,棋盘的“形状”输入决定,只能在#的位置放棋子,棋子不能同行,不能同列。 思路: 逐行尝试,放完第一行放第二行……每行的#都要尝试&#xf…

题目:

题目解析:

在n*n的矩阵内描述棋盘,棋盘的“形状”输入决定,只能在#的位置放棋子,棋子不能同行,不能同列。

思路:

逐行尝试,放完第一行放第二行……每行的#都要尝试,同时用一个数组来标记一列上是否已经存在棋子。相当于每次从第一行的某个#出发,前往下一行的#,直到最后一行或者把棋子放完,有点类似于dfs,用递归最方便:

代码:

#include<iostream>
#include<vector>
#include<string>
using namespace std;int cnt = 0;void placeInRow(int row, int k, int n, vector<string>& board, vector<bool>& cols)
{if (k == 0)//如果棋子已经放完了,方案加1{cnt++;return;}if (row == n)//如果最后一行已经放完了,那么结束return;//尝试在当前行的每个有效位置放置棋子for (int col = 0; col < n; col++){if (board[row][col] == '#' && !cols[col]){cols[col] = true;placeInRow(row + 1, k - 1, n, board, cols);//处理下一行cols[col] = false;//回溯的时候要清理棋子}}//当前行无法放置棋子,直接调到下一行placeInRow(row + 1, k, n, board, cols);
}int main()
{int n, k;while (cin >> n >> k){if (n == -1 && k == -1)break;vector<string> board(n);//棋盘for (int i = 0; i < n; i++)cin >> board[i];//读取棋盘信息cnt = 0;//每一轮重置一次countvector<bool> cols(n, false);//列标记placeInRow(0, k, n, board, cols);cout << cnt << endl;}return 0;
}

http://www.dtcms.com/wzjs/49107.html

相关文章:

  • 中国建设银行官网网站首页网站首页快速收录
  • 网站头部模板网络营销的成功案例分析
  • 商业信息网站大全软文营销怎么写
  • 网站开发技术简介pc端网页设计公司
  • wordpress ldap 插件谷歌seo搜索引擎优化
  • 网站功能结构图 怎么做网站域名注册
  • 芜湖炎黄做的网站新闻头条今日要闻军事
  • 杭州网站建设网络公司腾讯云域名注册
  • 网站站外优化怎么做小程序开发哪家好
  • 柳州做网站的公司德州seo优化
  • 做网站建设找哪家好seo公司排名
  • 西安网站seo如何推广自己成为网红
  • 微网站建设包括哪些方面独立站优化
  • 深圳做网站的公司排名营销策略4p分析怎么写
  • 网站做多长时间才会逐渐成功站长工具备案查询
  • 创建个人网站怎么做p2p万能搜索种子
  • 来个网站急急急2021年旺道seo推广有用吗
  • 上海交通大学文科建设处网站快手seo
  • 国内flex做的网站bt种子万能搜索神器
  • 重庆做网站那里好域名注册人查询
  • crm做的比较好的公司深圳网络优化公司
  • wordpress 操作日志宁波seo网络推广报价
  • 企业官方网站建设运营方案谷歌seo公司
  • 东莞seo建站排名百度一下百度首页
  • 莱芜seo推广成都seo推广
  • 建筑公司名称大全seo经验
  • 苏州做网站优化公司哪家好百度竞价推广有哪些优势
  • 电商公司做网站东莞seo外包
  • 自己怎么做电影网站吗搜索自媒体平台
  • 广州做网站设计网址推广