生产工序(oj题)

2023-12-09 20:21
文章标签 生产 oj 工序

本文主要是介绍生产工序(oj题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很有趣的一道题

关键在于固定工序的整合

看样例是固定工序中间是不能插入其他工序的(也不讲清楚),如果可以的话,只能说可能会更麻烦

注意固定工序是按照固定工序中的第一个工序进行排序的

整合完之后,就是递归列出所有的可能了

唯一新颖之处就是固定工序的整合

代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Process{int num[100];int len;
}process[10];
void dg(int n);
int count, pn, occ[10];
int result[11];int main(void)
{int N, M;scanf("%d%d", &N, &M);{struct Process tmp[10];memset(tmp, 0, sizeof(tmp));for(int i = 0; i < M; i++){scanf("%d", &tmp[i].len);for(int j = 0; j < tmp[i].len; j++)scanf("%d", &tmp[i].num[j]);}//创建整合后的工序for(int x = 1; x <= N; x++){for(int i = 0; i < M; i++)for(int j = 0; j < tmp[i].len; j++)if(x == tmp[i].num[j]){if(j == 0)  memcpy(&process[pn++], &tmp[i], sizeof(tmp[i]));goto out;}process[pn].len = 1;process[pn++].num[0] = x;out: ;}}dg(1);return 0;
}
void dg(int n)
{for(int i = 0; i < pn; i++)if(!occ[i]){occ[i] = 1;result[n] = i;if(n != pn)dg(n + 1);else{printf("%d.", ++count);for(int j = 1; j <= pn; j++){for(int x = 0; x < process[result[j]].len; x++)printf(" %d", process[result[j]].num[x]);}putchar('\n');}occ[i] = 0;}
}

因为tmp的适用范围只有在整合部分,所以整了个动态变量

这里用了goto跳出多重循环

这篇关于生产工序(oj题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/474956

相关文章

yolov3 上生产

1、在生产环境上编译darknet,执行make命令就好哦。  通过以后,拿到libdarknet.so 2、改一改../python/darknet.py文件 3、把darknet里的四个模型文件地址改一改就可以了     后面我会写一篇详细的,今天我要回家了

金蝶盘点机PDA进行工序汇报扫描,工时工资统计使用说明书

使用盘点机PDA扫描商品条码(序列号)进行工序汇报,自动生成电脑里的【工序汇报单】,自动计算工时,工资。这样就不用去电脑上人工手工一行行录单,大大提高工作效率和数据准确性。 操作时,只需要商品条码(序列号)即可实现快速,准确的工序汇报。从而防止电脑进行工序汇报耗时,费事,不准确的问题。 注意商品条码规则:产品代码+钢管长度+炉号+管号+合同号+序列号 下面我们看下【工序汇报单】的操作步骤

金蝶工序汇报扫描,通过扫描条码的方式进行工序汇报的方法

工序汇报单扫描 优势点:传统的工序汇报是纸质的,生产过程中填好,然后生产完再安排专人录入到金蝶系统里,整个过程比较费事,容易出错,而且有延时,数据不及时。录入数据的人非当事人,数据错误后容易出现扯皮的情况。 那么如果使用盘点机PDA扫描商品条码进行工序汇报,就能很好的解决这个问题了。谁操作,谁扫描,另外扫描后工序数据实时传输到后台,电脑上立即可以看到,管理层可以根据生产数据实时做出策略。从而

体验了一下AI生产3D模型有感

我的实验路子是想试试能不能帮我建一下实物模型 SO 我选择了一个成都环球中心的网图 但是生成的结果掺不忍睹,但是看demo来看,似乎如果你能给出一张干净的提示图片,他还是能做出一些东西的 这里我延申的思考是这个物体他如果没看过背面,他怎么猜? 他产出的物品为啥都是一张图的,我还是不太理解 但是如果多张图片,其实又和一个多图3D重建的能力似乎重复了 或者我感觉这个功能需求两张图片 正上面45

二叉树经典OJ练习

个人主页:C++忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C++忠实粉丝 原创 二叉树经典OJ练习 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 前置说明  1. 单值二叉树 2. 相同的树 3. 对称二叉树 4. 二叉树的前序遍历 5. 二叉树中序遍历 6. 二叉树的后序遍历 7. 另一

【Rust日报】2020-02-06 那些在生产中使用 Rust 的公司

那些在生产中使用 Rust 的公司 按行业组织的,在生产中使用 Rust 的公司的精选列表。可供大家参考,GitHub 地址:https://github.com/omarabid/rust-companies reddit 上参与讨论:https://www.reddit.com/r/rust/comments/ez7m4u/rust_companies_in_production_list_

【Rust日报】2020-08-29 生产环境 Rust 序列化库的选择

生产环境选哪个 Rust 序列化库? 序列化一直是 Rust 的强项,序列化库既成熟又快速。 特别是 Serde 在 Rust 1.0.0 发布之前就已经可用,其背后的理念是使用 trait 解耦对象,并从序列化格式中进行序列化/反序列化,这是一个非常强大的思想。格式编写者只需实现 Serde 的 trait 即可,而用户通过#[derive(Serialize,Deserialize)]对其对

航行在水域:使用数据湖构建生产级 RAG 应用程序

在 2024 年年中,创建一个令人印象深刻和兴奋的 AI 演示可能很容易。需要一个强大的开发人员,一些聪明的提示实验,以及一些对强大基础模型的API调用,你通常可以在一个下午建立一个定制的AI机器人。添加一个像 langchain 或 llamaindex 这样的库,使用 RAG 来增强您的LLM一些自定义数据 - 一个下午的工作可能会变成一个周末项目。 然而,投入生产是另一回事。您将需要一

linux安装生产环境

一. 安装文件准备. 1. VMware-workstation_full_12.2.0.1269.exe        虚拟机安装文件 2. CentOS-7-x86_64-DVD-1611.iso        linux系统镜像 二. 软件安装. 1. 安装VMware.     VM安装需要使用管理员权限安装,不然在输入注册码时会提示"vm 您无权输入许可证密钥"的问题,此时需要

生产环境安装odoo

odoo可以在多平台运行,但是在生产环境下官方不建议在Windows平台部署。在Windows下可能不能很好的支持一服务多worker的形式,更推荐在Linux下部署。 常见的Linux如Ubuntu、Debian等Debian系或Redhat系都能执行官网的包安装。 地址:Download | Odoo 业务架构 主要有三种架构: 独立服务器部署 - All in one.