#include <iostream>
#include <sstream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <stack>
#include <queue>
#include <set>
#include <math.h>/*=======================================
回溯法的解空间树
以排列为例
1 2 3 4
输出一共16种,采用两种解空间树
========================================*/
#define flush(arr, i) memset(arr, i, sizeof(arr))
typedef long long int64;
using namespace std;
const int MAX_ITEM = 128;
//const int oo = 0x7fffffff;
const int oo = 0x3f3f3f3f;
bool vis[MAX_ITEM];int item[] = {2, 4, 5, 9}, dp = 4, arr[MAX_ITEM];//关注当前这个元素选不选
//入口参数表示深度
void traverse_whether(int d)
{if(d > dp){for(int i = 1; i < d; i++)if(vis[i]) printf("%d ", item[i - 1]);printf("\n");return;}vis[d] = 1, traverse_whether(d + 1);vis[d] = 0, traverse_whether(d + 1);
}//关注于当前元素选什么
//cnt表示当前要放的元素下标,d表示当前要选的元素下标
void traverse_what(int d, int cnt)
{if(d == dp + 1){//删除最后一个,表示什么都不选for(int i = 0; i < cnt - 1; i++)printf("%d ", arr[i]);printf("\n");return;}for(int i = d; i <= dp; i++){//选当前的arr[cnt] = item[i];cnt++;traverse_what(i + 1, cnt);cnt--;}
}int main()
{flush(vis, 0);printf("着重于当前是否选\n");traverse_whether(1);printf("==============================\n着重于当前选什么\n");traverse_what(0, 0);printf("==============================\n");return 0;
}

关于回溯模型的两种解空间树相关推荐

  1. 加载dict_PyTorch 7.保存和加载pytorch模型的两种方法

    众所周知,python的对象都可以通过torch.save和torch.load函数进行保存和加载(不知道?那你现在知道了(*^_^*)),比如: x1 = {"d":" ...

  2. pytorch保存模型的两种方法

    文章目录 前言 一.保存整个模型 二.只保存参数 模型不同后缀名的区别 总结 前言 模型的本质是一堆用某种结构存储起来的参数 用数据对模型进行训练后得到了比较理想的模型,就需要将其存储起来,然后在需要 ...

  3. 操作系统:生产者消费者模型的两种实现(C++)

    文章目录 生产者消费者模型 什么是生产者消费者模型 生产者消费者模型的321原则 生产者消费者模型的优点 生产者消费者模型的实现方法 基于循环队列,信号量实现 基于阻塞队列,互斥锁.条件变量实现 生产 ...

  4. 评分模型和额度模型的两种不同应用场景

    评分模型是对客群进行量化风控的重要工具,通过评分模型中风险水平的排序,我们可以将客群量化定级(A.B.C-等级).常规上的风险评分模型可以分成申请评分模型.行为评分模型.催收评分模型.反欺诈评分模型. ...

  5. 生产者-消费者模型的两种实现方式

    https://www.cnblogs.com/caolicangzhu/p/7086176.html 本文主要来总结生产者-消费者模型的代码实现,至于其原理,请大家自行百度. 一.基于链表的生产-消 ...

  6. 【PyTorch】保存和载入模型的两种方法

    import torch import argparseparser = argparse.ArgumentParser("-") parser.add_argument(&quo ...

  7. 利用同一模型的两种表情(Poser轻松得到)制作表情动画(菜鸟版)

    具体方法是参照OGRE官网论坛的一个帖子: http://www.ogre3d.org/forums/viewtopic.php?f=8&t=40583 要用到 Morpher修改器.也可以直 ...

  8. 使用pytorch构建LSTM_AE模型的两种方式

    目录 1.LSTM-Encoder-Decoder模型结构及简要解析 2.general LSTM Unit--使用pytorch nn.LSTM组件构建LSTM_AE 1.定义Encoder: 2. ...

  9. Java程序员需要了解的两种服务器设计模型

    我们在IO模型和Java网络编程模型中,对IO有了一定的理解.这一篇,主要讲解基于事件驱动的两种是在原来基础上的扩展.在基于事件驱动的网络编程模型中,Reactor和Proactor模型是两种常用的I ...

  10. 两种方法筛选出多因子量化选股模型

    多因子选股模型在模型搭建中,往往会涉及到非常多的股价影响因子,并可能导出数量极多的备选模型.因此,对于多因子选股模型的评价和筛选,就显得尤为关键. 对于专业的量化投资人而言,就需要进一步了解多因子选股 ...

最新文章

  1. 深入理解Java Proxy和CGLIB动态代理原理
  2. generator自动生成mybatis配置和类信息
  3. 淘宝网物流宝平台11日上线 全面开放API接口
  4. 重置电脑的网络配置 -- 解决防火墙问题导致的应用启动失败
  5. Plus One @python
  6. 卡尔曼滤波器MATLAB实现(从一维到三维)
  7. C#数据库教程2-ADO.NET常用SQL语句
  8. PS抠图滤镜Topaz ReMask白纱透明抠图法
  9. 不需要 Root,也能用上强大的 Xposed 框架:VirtualXposed
  10. Retina屏图片适配
  11. vim超实用指南收藏这一篇就够了
  12. 快递市场定价 到底有何影响
  13. html5横竖条纹背景,CSS制作Web页面条纹背景样式的介绍
  14. Reference详解
  15. 关于技术型人才与研究型人才
  16. 基于图像的虚拟换装:Morphing architectures for pose-based image generation of people in clothing
  17. 职场——领导的话你得品,你不走心,就容易走人
  18. 以TM32最小系统核心板(STM32F103C8T6)为主,实现led流水灯
  19. 一款个性、实用、无痕的浏览器(大学生的最爱)
  20. 模电中NPN和PNP导通条件

热门文章

  1. 【软件工程师学硬件】之 接口
  2. 神经网络梯度消失和梯度爆炸原因推导及其解决方案
  3. 演示固态硬盘装win11系统教程
  4. H5页面调用扫一扫功能
  5. Java惯性数据库_来自ThreeJS的OrbitControl中的惯性
  6. 颜值大比拼,用数据告诉你中国哪里美女多?
  7. 高交会美女图片!!!
  8. mysql查询excel表_使用SQL语句实现对Excel工作表数据进行查询的方法
  9. 重磅:国家基金委八大学部公布“优先发展领域及主要研究方向”
  10. RabbitMQ heartbeat原理