排日程 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。

该博客介绍了一个关于保密单位机要人员A、B、C、D、E的排班问题,要求每周工作5天,休息2天,并满足特定条件,包括固定工作日、连续工作不超过3天、每周至少3个工作日、至少2人在岗、BDE周日休息、AE周三工作以及A和C至少4天同时工作。博客提供了Java代码来生成满足所有条件的排班方案。
摘要由CSDN通过智能技术生成
package org.bluebridge.topics;

/*
 * 排日程
 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。
 上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更。
 此外,由于工作需要,还有如下要求:
 1. 所有人的连续工作日不能多于3天(注意:周日连到下周一也是连续)。
 2. 一周中,至少有3天所有人都是上班的。
 3. 任何一天,必须保证 A B C D 中至少有2人上班。
 4. B D E 在周日那天必须休息。
 5. A E 周三必须上班。
 6. A C 一周中必须至少有4天能见面(即同时上班)。
 你的任务是:编写程序,列出ABCDE所有可能的一周排班情况。工作日记为1,休息日记为0
 A B C D E 每人占用1行记录,从星期一开始。

 【输入、输出格式要求】
 程序没有输入,要求输出所有可能的方案。
 每个方案是7x5的矩阵。只有1和0组成。        
 矩阵中的列表示星期几,从星期一开始。
 矩阵的行分别表示A,B,C,D,E的作息时间表。
 多个矩阵间用空行分隔开。

 例如,如下的矩阵就是一个合格的解。请编程输出所有解(多个解的前后顺序不重要)。
 0110111
 1101110
 0110111
 1101110
 1110110
 * */

public class ArrangeAgenda {

	static int arra[][] = new int[100][7];
	static int count = 0;// 有多少中情况是满足不是连续工作3天以上的

	public static void main(String[] args) {

		for (int i = 0; i &l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值