首页 > 其他分享 >委派任务问题

委派任务问题

时间:2023-05-05 20:57:16浏览次数:35  
标签:委派 穷举法 int 问题 任务 && 条件 表达式

1.问题描述

某项任务需要在A、B、C、D、E、F这6个人中挑选人来完成,但挑选人受限于以下的条件:
(1) A和B两个人至少去一人;
(2) A和D不能同时去;
(3) A、E和F三人中要挑选两个人去;
(4) B和C同时去或者都不去;
(5) C和D两人中只能去一个;
(6) 如果D不去,那么E也不去。

试编程求出应该让哪几个人去完成这项任务。
2.问题分析

把六个条件转换成表达式,假设参加任务为1,不参加为0,那么这几个条件分别是

A+B>=1

A+D!=2

A+E+F==2

B+C==0||B+C=2

C+D==1

D+E==0||D++1

3.算法设计

穷举法算出所有的情况,然后用逻辑表达式作为判断条件,如果符合,输出结果

if (A + B >= 1 && A + D != 2 && A + E + F == 2 && (B + C == 0 || B + C == 2) && C + D == 1 && (D + E == 1 || D == 1))

输出结果会用到三目运算符,表达式格式为:<表达式1> ? <表达式2> : <表达式3>;

(1)计算表达式1的值;

(2) 若表达式1的值为真(或非0),则只计算表达式2,将其结果作为整个表达式的值;

          若表达式1的值为假(或为0),则只计算表达式3,将其结果作为整个表达式的值。

就是这样

cout << "A " << (A ? "" : "不") << "去。" << endl;

4.完整程序

#include<iostream>
using namespace std;
int main()
{
    int A, B, C, D, E, F;//下面是穷举法,穷举出所有可能的情况
    for (A = 0; A <= 1; A++)
    {
        for (B = 0; B <= 1; B++)
        {
            for (C = 0; C <= 1; C++)
            {
                for (D = 0; D <= 1; D++)
                {
                    for (E = 0; E <= 1; E++)
                    {
                        for (F = 0; F <= 1; F++)
                        {
                            if (A + B >= 1 && A + D != 2 && A + E + F == 2 && (B + C == 0 || B + C == 2) && C + D == 1 && (D + E == 1 || D == 1))//判断条件
                            {
                                cout << "A " << (A ? "" : "不") << "去。" << endl;
                                cout << "B " << (B ? "" : "不") << "去。" << endl;
                                cout << "C " << (C ? "" : "不") << "去。" << endl;
                                cout << "D " << (D ? "" : "不") << "去。" << endl;
                                cout << "E " << (E ? "" : "不") << "去。" << endl;
                                cout << "F " << (F ? "" : "不") << "去。" << endl;
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

 

标签:委派,穷举法,int,问题,任务,&&,条件,表达式
From: https://www.cnblogs.com/lllyclh/p/17375331.html

相关文章

  • register at least one qt version using“qt vs tools“->“qt options“问题描述及解
    问题描述:在安装了Qt5.9.8,vs2022,QTVSTool2022并配置好环境变量之后创建Qt项目时无法创建,提示至少需要注册一个Qt版本到QtVSTools的QtOptions 解决方法:1.重新打开一个可以创建的C++vs文件,在上方菜单栏中“工具-选项-找到Qt的version”,点击加号,再点击windows右侧的......
  • 解决OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll alread
    错误如下所示:OMP:Error#15:Initializinglibiomp5md.dll,butfoundlibiomp5md.dllalreadyinitialized.OMP:HintThismeansthatmultiplecopiesoftheOpenMPruntimehavebeenlinkedintotheprogram.Thatisdangerous,sinceitcandegradeperformanceorcau......
  • 2023-05-05 背包问题
    背包问题101背包和完全背包问题01背包问题有N件物品和一个容量为V的背包,第i件物品的体积是v[i]、价值是w[i],每种物品只可以使用一次,求将哪些物品放入背包可以使得价值总和最大。这里的w是weight即权重的意思这是最基础的背包问题,"01"就是指每种物品要么选要么不选,我们定义......
  • 2.2 存钱问题
    #include<stdio.h>#include<math.h>intmain(){intx1,×2,x3,x5,x8,y1,y2,y3,y5,y8;/*定义变量*/doublemax=0.0,result;/*result变量存放最后结果*//*使用for循环穷举所有可能的存款方案*/for(x8=0;x8<=2;x8++)for(x5=0;x5<=(20-8*x8)/5;x5++)for(x3=0;x3......
  • OpenEuler 部署 kubesphere 遇到问题及处理
    安装时报如下错误18:46:27CSTretry:[node1]18:46:33CST[ERRO]checkremotefileexisterr:strconv.Atoi:parsing"Welcometo5.10.0-136.12.0.86.oe2203sp1.x86_64\r\n\r\nSysteminformationasoftime:\tFriMay506:46:33PMCST2023\r\n\r\nSystem......
  • 我在比较时序数据时,程序报错说数据标签有问题
    大家好,我是皮皮。一、前言前几天在Python白银群【黑白人生】问了一个Pandas数据处理的问题,这里拿出来给大家分享下。截图如下图所示:数据截图如下所示:二、实现过程这里【论草莓如何成为冻干莓】给了一个思路,如下所示:看上去还是有点深奥的。后来【瑜亮老师】也指导了一波......
  • 2.6存钱问题
    1.问题假设银行整存整取存款不同期限的月息利率为:C语言趣味编程100例0.63%0.66%0.69%0.75%0.84%期限为1年期限为2年期限为3年期限为5年期限为8年现在已知某人手上有2000元,要求通过计算选择出一种存钱方案,使得这笔钱存入银行20年后获得的利息最多,假定银行对超出存款期限的那部分时......
  • xxlJob端口号及故障转移设置,解决负载均衡调度任务执行
    xxlJob端口号及故障转移设置,解决负载均衡调度任务执行my.xxljob.executorPort=1162my.xxljob.executorAppName=myService-job-executor-fat1##xxlJobadmin后台服务地址my.xxljob.adminAddresses=http://xx.xx.xx.xx:1048my.xxljob.executorAppName=xxl-job-execut......
  • C# .net 6 Log4net 安装、配置 以及相关问题处理
    安装log4net首先下载相关Nuget包安装的时候注意项目的.net版本,我这里使用的是.net6在根目录下面新建一个配置文件log4net.config,并且添加下面相关配置项目<?xmlversion="1.0"encoding="utf-8"?><configuration> <log4net> <!--将日志以回滚文件的形式写到文件中-......
  • django迁移数据库错误问题解决
    删除所有的pyc文件,迁移文件然后重新运行python3manage.pymakemigrationsdjango.db.utils.InternalError:(1060,"Duplicatecolumnname'addr_id'")运行python3manage.pymigrate--fake然后重新运行python3manage.pymigrate成功!......