美文网首页
2023-01-17 儿子两道工序,3个茶壶的题目

2023-01-17 儿子两道工序,3个茶壶的题目

作者: 木马音响积木 | 来源:发表于2023-01-16 14:27 被阅读0次

使用的两种方法,明显看出用了类,逻辑简单了

''' 两个工序,,完成 3 个产品 
A  上漆  10  花纹  15 
B  上漆  16  花纹  8  
C  上漆  13  花纹  12  
'''
qi =[10,16,13]
hua =[15,8,12]
qi =[434,244,444]
hua =[37,37,37]
def ttime(aa,bb,cc):
    """
    aa 代表 A 可以画花纹的时间点
    bb 代表 B 可以画花纹的时间点
    cc 代表 C 可以画花纹的时间点    
    """
    #花费的时间
    t=0 
    #控制开关,0 一道工序也没有做,1代表第一道工序完成了,2代表第二道工序完成了
    a=b=c=0 
    #第二道工序花费的时间
    x,y,z=hua
    #三个开关,避免a,b,c 状态 只被 触发一次
    i=j=k=1

    while a+b+c<6:  #3个都画完毕,就退出
        #时间滴答滴答
        t+=1 
        if i and t>=aa: #第一件A 完成第一道工序了
            a,i=1,0
            #A 可以开始画花纹了 
        if j and t>=bb:
            b,j=1,0 
        if k and t>=cc:
            c,k=1,0
        
        if a==1:
            a=2
            #这段时间都在画A
            t+=x
            if a+b+c<6:
                t -=1 
        elif b==1:
            b=2
            t+=y 
            if a+b+c<6:
                t -=1 
        elif c==1:
            c=2
            t+=z
            if a+b+c<6:
                t -=1 
    return t

ans=[]
paixu=[]
qiqi =[]
for i in range(3):
    for j in range(3):
        if i!=j:
            k=3-i-j 
            #(0,1,2) (2,1,0)
            now =(i,j,k) 
            #print(now) 
            paixu.append(now)
            e=f=g =sum(qi)
            if now[0]==0:
                e=qi[0] 
            elif now[1]==0:
                e=qi[now[0]] +qi[0] 
               
            if now[0]==1:
                f=qi[1] 
            elif now[1]==1:
                f=qi[now[0]] +qi[1]               

            if now[0]==2:
                g=qi[2] 
            elif now[1]==2:
                g=qi[now[0]] +qi[2]  

            tmp = ttime(e,f,g) 
            qiqi.append((e,f,g))
            ans.append(tmp)
print(paixu)
print(ans,min(ans))

print('---------------------------')

class PPji:

    def __init__(self,shijian) -> None:
        self.ganwan=0
        self.fei =shijian
        
    def isbusy(self):
        return self.fei!=0

    def isnotbusy(self):
        return self.fei==0

    def dida(self):
        if self.fei:
            self.fei -=1
            if self.fei==0:
                self.ganwan+=1
            
ttt =sum(qi) +sum(hua) 
from collections import deque 
qq =deque()

def ganhuo(a,b,c):
    gg=PPji(0)
    for i in range(1,ttt+1):
        if i ==a:
            qq.append(hua[0]) 
        if i==b:
            qq.append(hua[1])
        if i==c:
            qq.append(hua[2])
        if gg.isbusy():
            gg.dida()

        if qq and gg.isnotbusy():
            gg.fei=qq.popleft()
        
        if gg.ganwan==3:
            return i
        
ans2 = ttt+1 
for x,y,z in qiqi:
    t=ganhuo(x,y,z) 
    ans2=min(ans2,t)
print(ans2)



相关文章

  • 舌尖上的中国第三季文案

    餐桌上新的变化,同样是时代潮流的印证。 器 铁锅打制工序中最重要的两道工序是打底子和打冷子。 打底子要锤打出铁锅的...

  • 越来越好

    今天,安装了壁挂炉的第三道工序,天然气表和进气管。再有两道工序,壁挂炉就安装完成了。 有了壁挂炉,今年的取暖就可以...

  • HCTF两道web题目

    HCTF WEB wp 官方Writeup: [https://bysec.io/hctf/writeup.htm...

  • 两道数学题目

    前天,浩浩跑上来问了我两道数学题目。 第一道很简单,一眼就能看出来怎么解答,令我纳闷的是,浩浩竟然不会?解题方法不...

  • 事件循环面试题目

    来看两道题目 题目1: 题目详解参见https://www.qdfuns.com/article/18271/88...

  • 薛兆丰《经济学人》读书笔记(十五)

    假定有两个人共同构成一个企业,他们一起生产某种商品。这两个人分别负责两道不同的工序:负责第一道工序的工人需要在阳光...

  • 每周一道算法题(二十二)

    由于本周的题目比较简单,又很相似,于是就来上两道吧,两道题的难度级别都是"Easy" 题目:给一个有序的数组,将其...

  • 程序员进阶之算法练习(八)附两道搜狐笔试题

    前言 前面讲了那么多算法的重要性。口说无凭,这次带上两道搜狐今年的笔试题。这里先附上两道搜狐题目的大意:题目一:《...

  • python陷阱(一):两道关于闭包的题

    两道题目 题目1 题目2 输出 题目1 题目2 带你探究为什么? 问题1:题目1和题目2函数返回分别是什么? 由上...

  • 大自然的女儿(11)

    2016.4.30 我的抹芽工作暂时结束,爸爸挑芽仍在继续。抹芽、挑芽,是管理橙子树的两道不同的工序。 好大的露水...

网友评论

      本文标题:2023-01-17 儿子两道工序,3个茶壶的题目

      本文链接:https://www.haomeiwen.com/subject/zapzcdtx.html