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

无锡网站制作中心/宁波seo教学

无锡网站制作中心,宁波seo教学,公司网站建设要求,wordpress 主题详解一、内容 子集和问题的一个实例为<S&#xff0c;c>。其中&#xff0c;S{x1&#xff0c;x2&#xff0c;...&#xff0c;xn}是一个正整数的集合&#xff0c;c是一个正整数。子集和问题判定是否存在S的一个子集S1&#xff0c;使得试设计一个解子集和问题的回溯法。对于给定…

一、内容

子集和问题的一个实例为<S,c>。其中,S={x1,x2,...,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得试设计一个解子集和问题的回溯法。对于给定的正整数的集合S和正整数c,计算S的一个子集S1使得

输入

第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值。接下来的1行中,有n个正整数,表示集合S中的元素。
输出
将子集和问题的解输出。当问题无解时,输出“Solution!”	

样例输入 Copy

5 10
2 2 6 5 4

样例输出 Copy

2 2 6

二、思路

  • 可行性剪枝:当我们组成的数的和sum > 我们要求解的值m时, 直接返回不再往下继续搜索。
  • 重复性剪枝:我们从已经选了的数后面进行选取,这样就避免了重复的过程。 比如选择1 2 3, 若不从下个位置进行搜索,那么还会搜索出2 1 3, 2 3 1 这些重复的结果。

三、代码

#include <cstdio>
const int N = 10005;
int a[N], n, m, rec[N]; 
bool ok;
void dfs(int start, int sum, int cnt) {if (sum > m) return ;//剪枝 if (sum == m) {for (int i = 0; i < cnt; i++) printf("%d ", rec[i]);ok = true;//记录是否找到一组解 return ;}for (int i = start; i <= n; i++) { //重复性剪枝 rec[cnt] = a[i];  //记录当前选的值 dfs(i + 1, sum + a[i], cnt + 1); //对下一个进行搜索 if (ok) return;}
}
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);}dfs(1, 0, 0);if (!ok) printf("Solution!"); return 0;
} 
http://www.jmfq.cn/news/4829131.html

相关文章:

  • 为什么网站显示建设中/成都关键词排名推广
  • 怎么编辑网站代码/赣州seo外包怎么收费
  • 营销型网站模板展示/app定制开发
  • 西地那非我吃了5年/深圳优化公司
  • 开发网站需要什么开发工具/营销案例分享
  • 建站视频教程全套 asp网站源码网页制作设计建设视频教程百度云/微信搜一搜怎么做推广
  • 永兴县人民政府门户网站/企业如何建站
  • 国外做情趣用品比较有名的网站/视频号视频下载助手app
  • dw怎么用div css做网站/免费二级域名分发
  • 合肥网站建设开发/国外外链平台
  • 网站设计制作要交印花税/优化疫情防控措施
  • 网站开发人才需求/三亚百度推广公司电话
  • 奉化区建设局网站/西安seo代理
  • b站短链接生成/新媒体代运营
  • 建e网室内设计网网址/北京网站优化推广方案
  • 东莞厚街镇疫情最新消息/seo外包杭州
  • 泉州做网站开发公司/私人网站服务器
  • 商城式网站具备哪些功能吗/重庆网站快速排名提升
  • 国内永久免费crm系统网站推荐/百度账号购买网站
  • 建网站内容/如何快速网络推广
  • wordpress建站教程贴吧/网络销售培训学校
  • 免费搭建商城网站/网络广告营销典型案例
  • 新疆建设兵团农一师检察院网站/陕西seo主管
  • 手机百度 网站提交/搜索引擎seo关键词优化
  • 购物网站建设与实现/b站推广入口2023
  • c2c网站的类型/sem是什么岗位
  • 做本地网站需要什么资质/本周时事新闻概要10条
  • 上海平台网站建设报/域名交易域名出售
  • 手机网站栏目结构图/太极seo
  • wordpress手机网站怎么做/河南seo推广