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

湖北做网站教程哪家好软文世界

湖北做网站教程哪家好,软文世界,自己做网站好难挣钱,ksweb wordpress曾经我们讲过枚举算法,那假设我们把枚举算法应用到搜索里呢? 1.搜索枚举 以前我们在进行枚举的时候是用了多层循环嵌套,但是当枚举的变量过多或者是输入的数量的时候就很难利用循环完成枚举了,不过我们可以尝试利用搜索进行枚举。…

曾经我们讲过枚举算法,那假设我们把枚举算法应用到搜索里呢?

1.搜索枚举

以前我们在进行枚举的时候是用了多层循环嵌套,但是当枚举的变量过多或者是输入的数量的时候就很难利用循环完成枚举了,不过我们可以尝试利用搜索进行枚举。

通常,我们通过一个 dfs 函数来完成搜索枚举,而通过参数表示当前状态。例如在大部分搜索枚举问题中,可以通过 step 或 depth 表示当前枚举层数,或使用 n 表示已经选入的数量,亦或在对于一些对 和 有限制的问题中,使用 sum 表示已经选入的数量之和。

让我们看一道能够使用搜索枚举实现的题目:现有方程a[1]x[1]+a[2]x[2]+a[3]x[3]+...+a[n]x[n]=0 2≤n≤10,−5≤a[i]≤5,−2≤x[i]≤2,x[i]∈Z

求解的总数。

Z 表示整数集合,其包括了:全体正整数、全体负整数和零。

能够估算所有的状态总数在 10的5次方∼10的7次方,能够枚举全部的状态。虽然能够使用 10 个循环完成,但此处使用搜索枚举更为方便。

int ans = 0;
void dfs(int dep, int sum) {if (dep == n) {if (sum == 0){ans++;}return;}for (int i = -2; i <= 2; i++) {dfs(dep + 1, sum + a[dep] * i);}
}

在很多搜索枚举的问题中,会要求我们打印解的具体内容,那么可使用数组来保存具体的解。如对于之前求方程解的问题,可将代码修改为:

int ans[15];
void dfs(int dep, int sum) {if (dep == n) {if (sum == 0){for (int i = 0; i < n; i++) {cout << ans[i] << " ";}cout << endl;}return ;}for (int i = -2; i <= 2; i++) {ans[dep] = i;dfs(dep + 1, sum + a[dep] * i);}
}

把在dep这一层选择的情况放在ans[dep]位置,ans数组就记下了目前枚举到的情况。n

在搜索枚举的过程中,我们能够根据题目的一些性质,对求解的过程进行剪枝优化,这个我们以后也会学到。但是对大部分题目来说,搜索枚举很有可能达到状态的上限,所以很有必要在决定使用搜索枚举之前确定状态的总数。

http://www.yidumall.com/news/101474.html

相关文章:

  • 云南建设厅网站房地产开发资质贵阳网站建设公司
  • php做视频网站app拉新推广平台有哪些
  • 建设网站需要注意什么最新疫情最新数据
  • b2b网站怎么做关键词优化燕郊今日头条
  • 头条有没有做网站的企业网站有哪些平台
  • 北京icp网站备案百度快照怎么优化排名
  • 路由器屏蔽网站怎么做效果好的关键词如何优化
  • 做网站要好多钱郑州seo顾问外包公司
  • 免费建设钓鱼网站平台seo优化工具
  • 外贸网站要怎么做搜索引擎入口网址
  • 别人做的网站百度网站验证种子搜索在线 引擎
  • 疫情目前最新消息短视频seo是什么
  • 标签云wordpress惠州seo推广优化
  • 高端网站开发步骤计算机培训机构
  • 网站开发技术与应用课程设计上海百度推广
  • 如何用图片做网站背景国外引擎搜索
  • 做网站公司郑州站长工具高清吗
  • 淘宝官网电脑版网页seo公司哪家好用
  • CMS网站建设优势网络营销模式下品牌推广研究
  • 以绿色为主色调的网站百度小说搜索风云榜排名
  • 网站费用怎么做分录永久免费客服系统软件
  • 做优惠卷网站倒闭了多少钱域名注册查询
  • 防水网站怎么做日本今日新闻头条
  • 做网站哪个好企业seo培训
  • 网站开发销售员自动外链发布工具
  • wap网站的未来做网络推广工作怎么样
  • wdcp 无法访问此网站营销型网站建设托管
  • 服务号网站建设制作app平台需要多少钱
  • 学做网站论坛可靠吗天津推广的平台
  • wordpress国产网校天津seo结算