简答题

课程名称:软件编程(C语言)(二级)

题目:5.排课排课是个世界难题。假设每个学期有 N 个教学班的课需要排,每周有 M 个时间段可以上课,全校共有 K 间教室,不同排课组合方案的个数可能会超过整个宇宙的质子数。更为复杂的是,每个学期排课前,学校还会收集每个教学班任课老师不能上课的时间段,还要保证排课不与老师的时间安排起冲突。当然,本题不是要求你实现一个排课算法,而是要求你实现一个排课方案检查算法。即给定每个教学班上课的时间和地点,你需要检查这个时间段和地点是否只有这一个班上课,并且这个上课时间不会正好是任课老师不能上课的时间。时间限制:5000内存限制:65536输入输入在第一行中给出三个正整数:N(≤ 104)为教学班总数;M(≤ 40)为一周内上课时间段的个数;K(≤ 103)为教室总数。数字间以空格分隔。以下我们就将教学班、时间段、教室分别从 1 开始顺序编号。 随后 N 行,每行给出一个教学班的任课教师时间限制和排课的信息。格式如下: L T[1] ... T[L] Time Room 其中 L 是任课教师的时间限制数量(< M),后面给出 L 个该老师不能上课的时间段编号;Time 是该教学班安排的上课时间段编号,Room 是上课教室编号。输出如果给定的课表安排是完全无冲突的,则在一行内输出:Perfect Arrangement for N classes! 其中 N 是教学班数量。 如果课表有冲突,则需要输出冲突原因。我们首先假设教学班是按照编号递增序进行排课的,教学资源先到先得。如果后面安排的教学班 A 跟前面的教学班 B 排在了同一个时间和地点,则在一行中输出 ERROR: Conflict between A and B.;如果教学班 A 的上课时间跟任课教师有冲突,则在一行中输出 ERROR: Conflict with instructor for A.。当两种冲突都发生时,分两行输出,先输出教学班冲突的信息。发生冲突的教学班暂不安排。样例输入样例1:5 20 102 1 5 10 70 10 35 2 4 6 8 10 3 33 10 3 18 15 11 20 19 10样例2:5 20 102 1 5 10 70 10 75 2 4 6 8 10 6 33 10 3 18 6 32 20 10 10 7样例输出样例1:Perfect Arrangement for 5 classes!样例2:ERROR: Conflict between 2 and 1.ERROR: Conflict with instructor for 3.ERROR: Conflict between 5 and 1.ERROR: Conflict with instructor for 5.

简答题

课程名称:软件编程(C语言)(二级)

题目:2.为 i 做 e“为 i 做 e”是最近新出的流行梗。这里的 i 和 e 指 MBTI 人格测试中的不同性格,i 是社恐,e 是外向。“为 i 做 e”就是在一群内向的人中促使自己变成外向(奇奇怪怪无用的知识又增加了)。给定某次大型活动中的餐桌安排,请你判断一下哪几桌的客人需要“为 i 做 e”了。时间限制:6000内存限制:65536输入输入第一行首先给出正整数 n(≤ 105),随后 n 行,每行给出一个人的代号和其性格,其中代号由 8 位数字组成,性格是单个字母 i 或 e,其间以空格分隔。 接下来是餐桌安排。首先给出正整数 m(≤ 103),为餐桌数量,随后 m 行,每行给出一个正整数 k(≤ 10)以及该桌 k 位客人的代号,用空格分隔。第 i 行对应的是第 i 桌的信息(1 ≤ i ≤ m)。题目保证没有人在餐桌安排中重复出现,且餐桌上每个人的性格都已给出。输出如果一桌客人全是 i 人,则意味着有人要“为 i 做 e”了。请在一行中按递增序输出这些桌的桌号。数字间以 1 个空格分隔,行首尾不得有多余空格。如果这样的餐桌不存在,则在一行中输出 None。样例输入样例1:1000000000 i12345678 e23468270 i78827341 e67476289 i35748108 e99999999 i40926483 i88472901 i55032849 i33 00000000 67476289 999999994 12345678 78827341 35748108 550328493 23468270 40926483 88472901样例2:1000000000 i12345678 e23468270 i78827341 e67476289 i35748108 e99999999 i40926483 i88472901 i55032849 i24 78827341 35748108 55032849 000000006 12345678 67476289 99999999 23468270 40926483 88472901样例输出样例1:1 3样例2:None

简答题

课程名称:软件编程(C语言)(二级)

题目:2.垃圾分类据香港《南华早报》7月15日文章,上海严格的垃圾分类新规令不少居民抓狂。这催生出大量帮助找出正确分类答案的App和小程序。目前仅微信上就至少有280种与垃圾处理有关的App,在苹果应用商店也达130种。支付宝表示,已有60多家独立App开发商申请为该平台提供类似服务。本题就请你现场实现一个简单的垃圾分类小助手。时间限制:1000内存限制:65536输入输入首先给出官方分类指南中每种物品的归属。在一行中给出一个正整数 N(≤ 100000),即物品数量;随后 N 行,每行给出一个物品名称(长度不超过 10 的、由小写英文字母和下划线组成的字符串)和该物品所属的分类(1 代表干垃圾、2 代表湿垃圾、3 代表可回收物、4 代表有害垃圾)。题目保证所有物品名称无重复。 随后每行给出一个查询物品的名称(格式与指南物品名称相同)。最后一行给出结束符 `#`,表示查询终止,这一行不需要查询。(查询的数量 ≤ 100000个)输出对每个查询的物品,在一行中给出其所属分类:`Gan laji` 代表干垃圾;`Shi laji` 代表湿垃圾;`Ke Hui Shou` 代表可回收物;`You Hai laji` 代表有害垃圾。如果查询的物品不在指南中,则输出 `?` 表示不知道。样例输入4bao_zhi 3dian_chi 4dan_ke 2bei_ke 1dan_kedian_chiren_zhabao_zhibei_ke样例输出Shi lajiYou Hai laji?Ke Hui ShouGan laji