题目名称 2649. [POJ 2947]小部件工厂
输入输出 widget.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 1
题目来源 Gravatarsyzhaoss 于2017-04-05加入
开放分组 全部用户
提交状态
分类标签
同余 数学 高斯消元法
分享题解
通过:0, 提交:2, 通过率:0%
Gravatarop_组撒头屯 0 0.587 s 6.10 MiB C++
Gravatarop_组撒头屯 0 0.599 s 6.10 MiB C++
关于 小部件工厂 的近10条评论(全部评论)

2649. [POJ 2947]小部件工厂

★★★   输入文件:widget.in   输出文件:widget.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

小部件工厂生产几种不同类型的小部件。每个小部件都是精心制作而成。制作小部件所需的时间取决于其类型:简单小部件仅需要 3 天,但最复杂的小部件可能需要多达 9 天。

工厂目前处于完全混乱的状态:最近,工厂被一位新主人收购,新主人解雇了几乎所有员工。新员工对制作小部件毫无经验,没有人清楚制作每个不同类型的小部件分别需要多少天。

当客户订购小部件,工厂却无法告诉客户生产所需商品需要多少天时显得十分尴尬。幸运的是,这里有记录记载了每个工人开始制作的日期,完成制作的日期以及制作的小部件型号。但是问题是记录没有明确记载工人开始和完成工作的确切日期,只记录了该天是星期几。尽管如此,这些信息也是有些帮助的:例如,如果一个人在星期二开始制作一个 41 型小部件,并在周五完成,那么我们就知道了制作一个 41 型小部件需要 4 天时间(因为最多不超过 9 天,所以不可能是 11 天或更多)。

您的任务是从这些记录中(如果可能)找出制作不同类型的小部件所需的天数。

【输入格式】

输入包含多组测试用例。

每个测试用例的第一行包含两个整数 n 和 m,分别代表小部件的型号总数以及记录总数。

接下来是对 m 个记录的描述。

每个记录占两行,第一行描述该名工人制作的小部件总数 kk 以及他开始制作和完成制作具体是星期几。

一周的日子由字符串 MON,TUE,WED,THU,FRI,SAT 和 SUN 来表示。

第二行包含用空格分隔的 k 个整数,表示该工人具体制作了哪些类型的部件。

如下面的例子中,这名工人星期三开始工作,星期日结束工作,期间先后完成制作了型号 13,型号 18,型号 1,型号 13 四个小部件。

4 WED SUN

13 18 1 13

每名工人一周工作 7 天。

当输入用例 n=m=0 时,表示输入终止,且该用例无需处理。

【输出格式】

每个测试用例输出一行结果,结果包含 n 个用空格隔开的整数,表示制作每个小部件所需的天数。

如果测试用例有多种可能结果,则输出 Multiple solutions.。

如果无解,则输出 Inconsistent data.。

【样例输入】

2 3
2 MON THU
1 2
3 MON FRI
1 1 2
3 MON SUN
1 2 2
10 2
1 MON TUE 
3
1 MON WED
3
0 0

【样例输出】

8 3
Inconsistent data.

【数据规模与约定】

$1\leq n,m\leq 300,1\leq k\leq 10000$。