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

做网站什么价位html网页设计模板

做网站什么价位,html网页设计模板,建立网站的相关信息,上海兴业建设有限公司网站目录 ​​​​ 前言 一、算法思路 二、分析过程 三、代码实现 伪代码: C: 总结 前言 【问题描述】考虑定义如下的PARTITION问题中的一个变型。给定一个n个整数的集合X{x1,x2,…,xn}和整数y,找出和等于y的X的子集Y。 一、算法思路 基本思想&am…

目录

​​​​

前言

一、算法思路

二、分析过程

三、代码实现

伪代码:

C++:

总结


前言

问题描述】考虑定义如下的PARTITION问题中的一个变型。给定一个n个整数的集合X={x1,x2,…,xn}和整数y,找出和等于y的X的子集Y。

一、算法思路

 基本思想:确定了解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。这个开始结点成为活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为新的活结点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。回溯法以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。

二、分析过程

重要❗❗❗

解的n元组:

解是一个包含0和1的n元组,其中每个元素对应集合X中对应位置的元素是否包含在子集Y中。

x的取值范围:
x为集合X中的每个元素,取值为正整数。

约束条件:
子集Y中元素之和等于给定整数y。

目标函数:
找出和等于y的X的子集Y。

三、代码实现

伪代码:

代码如下(示例):这个代码很重要!!!

INPUT:X集合(数组),  整数y
OUTPUT:X集合对应的n元布尔向量,使得对应的元素为1的xi之和为y。1. 初始化n元布尔向量c[n],值为-1;s=02. flag ←false3. k ←1 4. while k≥ 15.     while c[k]≤06.          c[k] ← c[k] +17.          if c[k]=1 then s=s+X[k]   8.            if s=y then set flag ←true, c[k+1]~c[n]←0且从两个while循环退出9.           else if s<y  then k k+110.     end while  11.     s=s-X[k]                12.     c[k] ←-113.      k ←k-114.  end while15.  if flag then output c16.  else output “no solution”

C++:

#include <iostream>
#include <vector>void subsetSumUtil(std::vector<int>& X, std::vector<int>& currSubset, std::vector<int>& result, int target, int currSum, int index) {if (currSum == target) {result = currSubset;return;}if (currSum > target || index >= X.size()) {return;}// Include the current elementcurrSubset.push_back(X[index]);subsetSumUtil(X, currSubset, result, target, currSum + X[index], index + 1);currSubset.pop_back();// Exclude the current elementsubsetSumUtil(X, currSubset, result, target, currSum, index + 1);
}std::vector<int> findSubsetSum(std::vector<int>& X, int y) {std::vector<int> result;std::vector<int> currSubset;subsetSumUtil(X, currSubset, result, y, 0, 0);return result;
}int main() {std::vector<int> X = {3, 34, 4, 12, 5, 2};int y = 9;std::vector<int> subset = findSubsetSum(X, y);if (!subset.empty()) {std::cout << "Subset with sum " << y << " exists: ";for (int num : subset) {std::cout << num << " ";}std::cout << std::endl;} else {std::cout << "No subset with sum " << y << " exists." << std::endl;}return 0;
}

结果:


总结

在考虑PARTITION问题的变种,即找出和等于给定整数y的X的子集Y时,可以使用回溯法来解决。算法的思路是通过搜索所有可能的子集组合,尝试包含或排除每个元素,直到找到合适的子集使得和等于给定整数y。算法的时间复杂度可能为指数级的O(2^n),因为需要搜索所有可能的子集。需要注意的是,回溯法的时间复杂度通常较高,特别是在面对大规模输入时。因此,在实际应用中需要考虑性能问题,并且可能需要对算法进行优化或者考虑其他更高效的解决方案。
 

http://www.ds6.com.cn/news/106010.html

相关文章:

  • 自适应网站dedecms代码站长聚集地
  • 珠海网站策划公司刷神马网站优化排名
  • 江苏网站建设效果徐州百度快照优化
  • 集成微信的企业网站管理系统江阴企业网站制作
  • 做网站构思免费好用的网站
  • 中国建设银行官网站企业网站如何做优化推广
  • 商城系统下载网站优化排名技巧
  • wordpress制作网站模板软文推广平台有哪些
  • 自己做网站宣传产品网络营销最基本的应用方式是什么
  • 广州工商注册咨询重庆seo教程
  • 太仓网站制作书生站长源码
  • 南宁网站设计建设登封网站设计
  • wordpress多条件过滤廊坊网络推广优化公司
  • 王烨真实身份长沙seo推广
  • 网站毕设怎么做百度识图鉴你所见
  • 花生棒做网站aso应用商店优化原因
  • 青岛建站服务沈阳今日新闻头条
  • 公司请人做的网站 域名属于谁石家庄seo外包的公司
  • 做网站 支付账号免费吗谷歌搜索引擎下载
  • 如何做返利网站外推广网络营销工作内容是什么
  • nas建站品牌营销包括哪些内容
  • 阿里巴巴网站开发看网站搜索什么关键词
  • 微信群投票网站怎么做企业seo案例
  • 自助建站系统官方版网络优化工程师是干什么的
  • 网站备案信息真实性核验世界杯比分
  • apache 网站建设竞价推广课程
  • wordpress it模板下载北京seo顾问推推蛙
  • 网站开发的软件环境杭州百度推广代理商
  • 电信改公网ip可以做网站吗朋友圈推广平台
  • 领导视察网站建设杭州优化公司哪家好