3035: 选课
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:
题目描述
小G非常喜欢学习,热衷于刷GPA。新的学期开始,他又要开始挑选课程,以便刷分了。
他的课业计划中共包含 n 项课程,每项课程都需要在 m 周中的某一周完成。课程与周数都从 1 开始编号。
一些课程有前置课程,对于所有的 i (1 ≤ i ≤ k),ai 是 bi 的前置课程。也就是修完 ai 才能修 bi。
相同的课程在不同周可能会由不同教授授课,不同教授会影响小G在这门课上的分数。
我们用一个数组 xi,j 来描述这个信息,对于每项课程i和周数j,xi,j 表示在第 j 周修第 i 门课所能得到的分数。如果 xi,j = -1 则说明那周不能修这门课。
一周中可以修多门课,而一门课需要用一整周的时间才算修完。
请帮助小G修完所有课程,并使得他得到分数的平均值最大吧。
输入
第一行三个整数 n, m, k,表示课程数、总周数与前置课程关系数。
接下来 n 行,每行 m 个整数,第 i 行第 j 个数表示 xi,j。
接下来 k 行,每行包含两个整数 ai, bi。
输出
输出一个实数,表示所能得到的 n 门课程分数平均值的最大值。答案保留两位小数。
样例输入 复制
[Sample 1]
3 2 2
70 100
100 80
100 90
1 2
1 3
[Sample 2]
4 5 4
20 -1 100 -1 -1
100 30 -1 -1 -1
100 -1 30 20 40
100 30 40 50 20
1 2
1 3
2 4
3 4
样例输出 复制
[Sample 1]
80.00
[Sample 2]
32.50
提示
【样例解释】
数据一:第一周修课程一,第二周修课程二和三。
数据二:第一周修课程一,第二周修课程二,第三周修课程三,第四周修课程四。
【数据范围】
30%的数据:n, m, k ≤ 7
另有30%的数据:一门课最多一门前置课程。
100%的数据:1 ≤ n, m ≤ 100, 0 ≤ k ≤ 100, -1 ≤ xi,j ≤ 100, 1 ≤ ai, bi ≤ n.
保证任意的前置课程关系不会出现两次,数据至少有一组合法解。