zoukankan      html  css  js  c++  java
  • lingo 练习3

    简介

    练习

    question

    有一个护士工作站点,每天(周一至周日)所需最少职员数量20,16,13,16,19,14,和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。

    code

    model:
    sets:
    days/mon..sun/:r,x;
    indexs/1..5/:index;
    endsets
    data:
    r=20 16 13 16 19 14 12; ! 每天所需的最少的职员数量;
    enddata
    min=@sum(days: x); !最小化每周所需要的的职员数量;
    @for(days(i):@sum(indexs(j):x(@wrap(i-j+1, 7))) >= r(i));
    @for(days:@gin(x));!约束x为整数变量;
    end

    answer

                            X( MON)        8.000000            1.000000
                            X( TUE)        2.000000            1.000000
                            X( WED)        0.000000            1.000000
                            X( THU)        6.000000            1.000000
                            X( FRI)        3.000000            1.000000
                            X( SAT)        3.000000            1.000000
                            X( SUN)        0.000000            1.000000
    

    自问自答环节~~

    wrap的使用方式?

    wrap(i-j+1, 7) 返回 1 - 7 之间的内容, 比如, i = 1, j = 4, i - j + 1 = -2 --> 5 就像一个环 
    

    校验结果

    MON 安排了8个人,往前再倒推4天就是MON上班的人数
    8 + 0 + 3 + 3 + 6 = 20 >= 20; bingo
    TWO 安排了2个人,往前在倒推4天就是TWO上班的人数
    2 + 8 + 0 + 3 + 3 = 22 >= 16; bingo
    再校验一个结果
    SUN 安排了0个人,往前再倒推4天就是SUN上班的人数
    0 + 3 + 3 + 6 + 0 >=12; bingo

    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    CKA-Kubernets(K8s) (一)
    CKA-docker 容器的管理
    CKA-docker 镜像的管理
    CKA-docker 基础
    开年自省系列—— 阅读完一本书《财务之路系列》 读书笔记
    Sublime开启VIM模式
    JavaScript 踩坑开始(ing...)
    代码思考题玩玩
    P2016 战略游戏-树形DP
    皇宫看守-树形DP
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13303646.html
Copyright © 2011-2022 走看看