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

企业网站数据库表设计企业官方网站建设教程

企业网站数据库表设计,企业官方网站建设教程,wordpress vr插件,360海南地方网站递归型枚举与回溯剪枝初识 1.枚举子集2.组合型枚举3.枚举排列4.全排列问题 什么是搜索#xff1f;搜索#xff0c;是一种枚举#xff0c;通过穷举所有的情况来找到最优解#xff0c;或者统计合法解的个数。因此#xff0c;搜索有时候也叫作暴搜。搜索一般分为深度优先搜索… 递归型枚举与回溯剪枝初识 1.枚举子集2.组合型枚举3.枚举排列4.全排列问题 什么是搜索搜索是一种枚举通过穷举所有的情况来找到最优解或者统计合法解的个数。因此搜索有时候也叫作暴搜。搜索一般分为深度优先搜索(DFS)与宽度优先搜索(BFS)。深度优先遍历 vs 深度优先搜索宽度优先遍历 vs 宽度优先搜索。遍历是形式搜索是目的。不过在一般情况下我们不会去纠结概念的差异两者可以等同。回溯与剪枝 回溯当在搜索的过程中遇到走不通或者走到底的情况时就回头。剪枝在搜索过程中剪掉重复出现或者不是最优解的分。 递归型枚举与回溯剪枝初识 画决策树。根据决策树写递归。 搜索的本质对决策树进行一次遍历直到将所有的情况搜集到为止。 1.枚举子集 B3622 枚举子集递归实现指数型枚举 解法深搜 设一共有 3 人分别是 123。「从前往后」考虑每一个人针对当前这个人「选」或者「不选」我们可以画出如下「决策树」 设计递归函数 重复子问题针对某一位「选」或者「不选」。因为最终结果要按照「字典序」输出我们可以「先考虑不选」然后「再考虑选」。实现方式参考代码和注释结合「决策树」一起看会很清晰。 #includeiostream #includestring using namespace std;const int N 11;int n; string path; //记录递归过程中每⼀步的决策void dfs() {if(path.size() n){cout path endl; //path存着前n个⼈的决策 return;}//不选path N;dfs();path.pop_back(); //回溯恢复现场//选path Y;dfs(); path.pop_back(); //回溯恢复现场 }int main() {cin n;dfs();return 0; }2.组合型枚举 P10448 组合型枚举 解法深搜 设 n 4, m 3「从前往后」考虑 3 个位置应该选哪个数我们可以画出如下决策树 设计递归函数 重复子问题当前这一位应该放哪个数上去。因为这是一个「组合」问题不涉及排列所以我们当前位置开始放的数应该是「上次决策的数的下一位」。实现方式参考代码和注释结合「决策树」一起看会很清晰。 #includeiostream #includevector using namespace std;int n, m; vectorint path; //记录递归过程中每⼀步的决策void dfs(int pos) {if(path.size() m){for(auto e : path) cout e ;cout endl;return;}for(int i pos; i n; i){path.push_back(i);dfs(i 1);path.pop_back(); //回溯恢复现场} }int main() {cin n m;dfs(1);return 0; }3.枚举排列 B3623 枚举排列递归实现排列型枚举 解法深搜 设 n 3, k 2一共要选出两个数可以依次「考虑要选出来的数」是谁画出如下决策树 设计递归函数 重复子问题考虑这一位要放上什么数。因为是「排列」问题所以我们直接从 1 开始枚举要放的数。剪枝在这一条路径中我们「不能选择之前已经选择过的数」需要用到辅助数组。实现方式参考代码和注释结合「决策树」一起看会很清晰。 #includeiostream #includevector using namespace std;const int N 15;int n, k; vectorint path; //记录递归过程中每⼀步的决策 bool vis[N]; //辅助数组标记哪些数已经选过 void dfs() {if(path.size() k){for(auto e : path) cout e ;cout endl;return;}for(int i 1; i n; i){if(vis[i] false){vis[i] true;path.push_back(i);dfs();//回溯恢复现场path.pop_back();vis[i] false;}} }int main() {cin n k;dfs();return 0; }4.全排列问题 P1706 全排列问题 解法深搜 跟上一道题的决策一样我们可以枚举每一位应该放上什么数只不过少了 k 的限制。剪枝的策略还是一样的那就是在路径中「不能选择之前已经选过的数」。 #includeiostream #includevector using namespace std;const int N 15;int n; vectorint path; //记录递归过程中每⼀步的决策 bool vis[N]; //辅助数组标记哪些数已经选过void dfs() {if(path.size() n){for(auto e : path) printf(%5d, e);cout endl;return;}for(int i 1; i n; i){if(vis[i] false){vis[i] true;path.push_back(i);dfs();//回溯恢复现场path.pop_back();vis[i] false;}} }int main() {cin n;dfs();return 0; }
http://www.hkea.cn/news/14419210/

相关文章:

  • 做网站的小图标简单的装x编程代码
  • 中山网站建设半江红学校网站设计论文
  • 迎中国建设银行网站网新科技集团有限公司
  • 公司网站建设的心得想自学软件开发难吗
  • 杭州网站排名外包怎样建设单位网站
  • seo网站建设步骤最好的网站建设
  • seo服务器优化搜索引擎优化要考虑哪些方面?
  • 贵州省城乡建设厅网站材料价怎么做qq网站
  • 个人网站开发如何赚钱吗滨州正规网站建设价格
  • 小米网站建设案例做钉子出口哪个网站好
  • 什么网站可以用视频做背景广东省建站公司
  • 扬州网站推广旅行用品东莞网站建设
  • 层流病房建设单位网站广州新闻热点事件
  • 怒江北京网站建设学校网站建设工作
  • 西安网站建设建站系统wow亚洲服有永久60级么
  • 怎么注册企业网站域名黄冈论坛网站有哪些
  • 龙岗区网站制作海南省住房和城乡建设厅网站
  • 上海省住房与城乡建设厅网站在线做网站黄
  • 网站开发三大流行语言毕节城乡建设局网站查询
  • 织梦网站如何做404网站厨师短期培训班
  • 做网站首页cdr南京房产网
  • 为什么要网站备案海外医疗网站建设
  • 杭州电子商务网站建设公司手机能建设网站忙
  • 上海网站搭建网站设计的用途
  • 美色商城 网站建设中联建设集团网站
  • 深圳罗湖网站设计公司郑州大型网站制作
  • 承德网站制作建筑人才网与厦门人才网的中级工程师证书的区别
  • linux宝塔面板做网站上海企业网站排名优化
  • 赌求网站开发wordpress怎么开发主题
  • drupal joomla wordpress 移动设备搜索引擎优化是什么