021.求解钢材切割的最佳订单

简介: 021.求解钢材切割的最佳订单
#include <stdio.h>
#define N 20
#define DELTA 2
int bestlen;
int bestsele[N];
int sele[N];
int n;
int orderlen[N];
int total;
main()
{
  int i;
  clrscr();
  printf("\n Please enter total length of the steel:\n");/* 输入钢材总长 */
  scanf("%d",&total);
  printf("\n Please enter number of order:\n");  /* 输入定单数 */
  scanf("%d",&n);
  printf("\n Please enter the orders:\n"); /* 输入各定单 */
  for(i=0;i<n;i++)
    scanf("%d",&orderlen[i]);
  bestlen=0;  /*最佳解用料的初值 */
  for(i=0;i<n;i++)
    sele[i]=bestsele[i]=0;  /*置当前选择和最佳选择初值 */
  try();  /* 调用函数求解 */
  for(i=0;i<n;i++) /* 输出结果 */
    if(bestsele[i])
      printf("order %d length = %d\n",i+1,orderlen[i]);
  printf("\n Press any key to quit...");
  getch();
}
try()
{
  int i,len;
  for(len=i=0;i<n;i++)  /* 求当前选中的用料量 */
    if(sele[i])
      len+=orderlen[i]+DELTA;
  if(len-DELTA<=total)  /* 注意最后一段可能不需要切割 */
  {
    if(bestlen < len)
    {
      /* 找到一个更好的解 */
      bestlen = len;
      for(i=0;i<n;i++)
        bestsele[i]=sele[i];
    }
    for(i=0;i<n;i++) /* 对所有未选定单逐一作选中尝试循环 */
      if(!sele[i])
      {
        sele[i]=1;  /* 做选中尝试*/
        try();
        sele[i]=0;
      }
  }
}
相关文章
|
4月前
|
安全 应用服务中间件 Linux
Debian操作系统如何安装Nginx并开启HTTP2
本指南介绍了在Linux系统中通过源码编译安装Nginx的完整流程。首先更新软件包列表并安装必要的编译依赖,接着下载指定版本的Nginx源码包(如1.24.0),检查文件完整性后解压。随后通过配置脚本指定安装路径与模块(如HTTP SSL模块),执行编译和安装命令。最后创建软链接以便全局调用,并提供启动、停止及重载Nginx的命令,同时提醒注意安全组设置以确保正常访问。
|
7月前
|
存储 弹性计算 运维
阿里云通用算力型U1实例怎么样?u1实例技术架构、场景适配与优惠价格参考
阿里云服务器ECS 通用算力型u1实例2核4G,5M固定带宽,80G ESSD Entry盘,企业用户专享优惠价格199元1年,很多用户关心这个款云服务器怎么样?阿里云通用算力型U1实例自推出以来,凭借独特的"均衡算力+智能调度"设计理念,在IaaS市场开辟出差异化的竞争赛道。本文将通过技术架构解析、典型场景适配分析、全生命周期成本测算三个维度,全面解构这款热门云服务器实例的核心价值,以供参考和选择。
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用合集之如何打包函数第三方依赖
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
小程序 数据安全/隐私保护
零基础学小程序005---小程序登陆注册功能实现
零基础学小程序005---小程序登陆注册功能实现
239 0
每日一题---剑指 Offer 40. 最小的k个数[力扣][Go]
每日一题---剑指 Offer 40. 最小的k个数[力扣][Go]
每日一题---剑指 Offer 40. 最小的k个数[力扣][Go]
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文主要介绍一种免运维,高性能,支持灵活配置的方案,使用SLS接入日志和告警。
2399 1
用SLS配置日志关键字告警的N种方法
java202304java学习笔记第六十四天-ssm-自定义异常处理器2
java202304java学习笔记第六十四天-ssm-自定义异常处理器2
62 0
|
9天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!