USACO 2013 DEC SILVER
一、题目概览
中文题目名称 |
挤奶调度 |
栅栏油漆 |
奶牛排队 |
英文题目名称 |
msched |
paint |
lineup |
可执行文件名 |
msched |
paint |
lineup |
输入文件名 |
msched.in |
paint.in |
lineup.in |
输出文件名 |
msched.out |
paint.out |
lineup.out |
每个测试点时限 |
1秒 |
1秒 |
1秒 |
测试点数目 |
10 |
10 |
10 |
每个测试点分值 |
10 |
10 |
10 |
比较方式 |
全文比较 |
全文比较 |
全文比较 |
二、运行内存限制
运行内存上限 |
128 M |
128 M |
128 M |
注:老胡的英语怎么这么给力/^……
1.挤奶调度{msched}
【问题描述】
FJ有N(1 <= N <= 10,000)头牛要挤牛奶,每头牛需要花费1单位时间。
奶牛很厌烦等待,奶牛i在它的截止时间d_i (1 <= d_i <= 10,000)前挤g(1 <= g_i <= 1000)的奶,否则将不能挤奶。时间t开始时为0,即在时间t=x时,最多可以挤x头奶牛。
请计算FJ的最大挤奶量。
【文件输入】
第一行,一个整数N。
接下来2..N+1行,每行两个整数,g_i 和 d_i.。
【文件输出】
输出共一行,一个整数,表示最大挤奶量【输入样例】
4
10 3
7 5
8 1
2 1
【输出样例】
25
【样例说明】
奶牛3—奶牛1—奶牛2,奶牛4不挤。
2. 农场航线{silver题1}
【问题描述】
有N(1 <= N <= 200)个农场,用1..N编号。航空公司计划在农场间建立航线。对于任意一条航线,选择农场1.K作为枢纽(1 <= K <= 100, K <= N)。
当前共有M (1 <= M <= 10,000)条单向航班连续这些农场,从农场u_i 到农场 v_i, 将花费 d_i美元。(1 <= d_i <= 1,000,000).
航空公司最近收到Q (1 <= Q <= 10,000)个单向航行请求。第i个航行请求是从农场a_i到农场 b_i,航行可能会多次经过某些农场,并且必须经过至少一个枢纽农场(可以是起点或者终点农场), In order to get from a_i
to b_i, the trip may include any sequence of direct flights (possibly even
visiting the same farm multiple times), but it must include at least one
hub (which may or may not be be the start or the destination). This
requirement may result in there being no valid route from a_i to b_i. For
all other trip requests, however, your goal is to help Air Bovinia
determine the minimum cost of a valid route.
【文件输入】
第一行,两个整数N和K。
接下来2到N+1行,描述N条命令
【文件输出】
一个整数,表示被至少刷K次的栅栏的数量。
【输入样例】
6 2
2 R
6 L
1 R
8 L
1 R
2 R
【输出样例】
6
【样例说明】
6个单位长度的栅栏至少被刷2次油漆,分别是[-11,-8], [-4,-3],[0,2].
3. 奶牛排队{ Gold题1}
【问题描述】
农夫约翰的N(1 <= N <= 100,000)只奶牛排成了一队,每只牛都用编上了一个“血统编号”,该编号为范围0...1,000,000,000的整数。血统相同的奶牛有相同的编号,也就是可能有多头奶牛是相同的"血统编号"。
约翰觉得如果连续排列的一段奶牛有相同的血统编号的话,奶牛们看起来会更具有威猛。为了创造这样的连续段,约翰最多能选出k种血统的奶牛,并把他们全部从队列中赶走。
请帮助约翰计算这样做能得到的由相同血统编号的牛构成的连续段的长度最大是多少?
【文件输入】
第一行,两个空格间隔的整数N和K 。
接下来N行, 每行一个整数,表示对应奶牛的血统编号。
【文件输出】
一行,一个整数,表示所能得到的最大连续段的长度
【输入样例】
9 1
2
7
3
7
7
3
7
5
7
【输出样例】
4
【样例说明】
样例说明,只能删除一种奶牛,删除3号血统的奶牛可得到2777757,其中最长的一段连续数字是4个7。