教室排课

该博客介绍了一个Java程序,用于解决信息学院四个专业A、B、C、D的公共课教室分配问题。给定一定数量的专业新生和教室容量,程序通过全排序递归算法寻找所有可能的教室分配方案,并按照字典序输出。博客提供了样例输入和输出,展示了程序的运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**问题描述
 信息学院有四个专业A、B、C、D,各专业入学新生人数分别是Na, Nb, Nc,Nd人。新学期开始有一门公共课,按专业划分成四个教学班,
 四个班在某个相同的时间段上课。已知该时间段还剩余8间教室可用,编号从1到8,每个教室能容纳的人数分别为120,40,85,50,100,140,70,100。
 试编一个程序,为上述四个教学班分配教室。
 找出所有可行的分配方案,对于每个方案依次输出为专业A、B、C、D分配的教室编号,按照字典顺序输出所有方案。
 输入格式
 一行,包含4个整数Na, Nb, Nc,Nd (20≤Na, Nb, Nc,Nd≤120),每2个整数之间用一个空格隔开。
 输出格式
 如果存在分配方案,输出若干行,每行表示一种教室分配方案,包含4个整数,依次表示A、B、C、D四个专业分配的教室编号。
 注意:按照字典序输出所有方案。
 如果不存在分配方案,输出-1。
 样例输入
 109 87 120 81
 样例输出
 1 5 6 3
 1 5 6 8
 1 8 6 3
 1 8 6 5
 6 5 1 3
 6 5 1 8
 6 8 1 3
 6 8 1 5
 样例输入
 100 101 102 103
 样例输出
 -1*/
import java.util.*;

public class Main5 {
	public static int a, b, c, d, sum = 0;
	public static int[] classRoom = { 120, 40, 85, 50, 100, 140, 70, 100 },
			array = new int[4];
	public static int[] tmp = new int[4];

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);

		for (int i = 0; i < 4; i++) {
			array[i] = sc.nextInt();
		}
		search(tmp, 0);
		if (
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值