USACO 2014 MARCH
一、题目概览
中文题目名称 |
农田灌溉 |
懒牛 |
牛叫 |
英文题目名称 |
irrigation |
lazy |
mooomoo |
可执行文件名 |
irrigation |
lazy |
mooomoo |
输入文件名 |
irrigation.in |
lazy.in |
mooomoo.in |
输出文件名 |
irrigation.out |
lazy.out |
mooomoo.out |
每个测试点时限 |
1秒 |
1秒 |
1秒 |
测试点数目 |
10 |
10 |
10 |
每个测试点分值 |
10 |
10 |
10 |
比较方式 |
全文比较 |
全文比较 |
全文比较 |
二、运行内存限制
运行内存上限 |
256 M |
256 M |
256 M |
注:感谢老胡鼎力翻译。【错误会有的,语句也不是那么流畅……】
1.农田灌溉{Silver题1}
【问题描述】
农民约翰想建立一个灌溉系统,给他的N(1 <= N <= 2000)块田送水。农田在一个二维平面上,第i块农田坐标为(xi, yi)(0 <= xi, yi <= 1000),在农田i和农田j自己铺设水管的费用是这两块农田的欧几里得距离(xi - xj)^2 + (yi - yj)^2。
农民约翰希望所有的农田之间都能通水,而且希望花费最少的钱。但是安装工人拒绝安装费用小于C的水管(1 <= C <= 1,000,000)。
请帮助农民约翰建立一个花费最小的灌溉网络。
【文件输入】
第一行为两个整数N和C。
接下来2..N+1行,每行两个整数,表示xi,和yi。
【文件输出】
输出共一行,一个整数,表示最小费用,无解则输出”-1”。
【输入样例1】
3 11
0 2
5 0
4 3
【输出样例1】
46
2. 懒牛{silver题2}
【问题描述】
奶牛贝西非常懒惰,她希望在她的地盘内找到一点最佳位置居住,以便在有限的步数内可以吃到尽量多的青草。
她的地盘是一个N行N列(1 <= N <= 400)的矩阵,第r行c列包含G(r,c)单位的青草(0 <= G(r,c) <= 1000)。从她的居住点,她最多愿意走K步(0 <= K <= 2*N),每一步她可以找到上、下、左、右直接相邻的某个格子。
例如,她的居住地在B处:
50 |
5 |
25* |
6 |
17 |
14 |
3* |
2* |
7* |
21 |
99* |
10* |
1*(B) |
2* |
80* |
8 |
7* |
5* |
23* |
11 |
10 |
0 |
78* |
1 |
9 |
当K=2时,她只愿意到标有*的位置。
请帮助她确定一个最佳的居住点,使她能吃到的最多的草。
【文件输入】
第一行,两个用空格隔开在整数N和K。
接下来N行N列的矩阵,每个数字表示草的数量。
【文件输出】
一个整数,表示她能吃到的最多的草量。
【输入样例1】
5 2
50 5 25 6 17
14 3 2 7 21
99 10 1 2 80
8 7 5 23 11
10 0 78 1 9
【输出样例1】
342
3. 牛叫{ silver题3}
【问题描述】
农民约翰忘记了他到底有多少头牛,他希望通过收集牛叫声的音量来计算牛的数量。
他的N (1 <= N <= 100)个农场分布在一条直线上,每个农场可能包含B (1 <= B <= 20)个品种的牛,一头品种i的牛的音量是V(i) ,(1 <= V(i) <= 100)。一阵大风将牛的叫声从左往右传递,如果某个农场的总音量是X,那么将传递X-1的音量到右边的下一个农场。另外,一个农场的总音量等于该农场的牛产生的音量加上从上一个农场传递过来的音量(即X-1)。任意一个农场的总音量不超过100000。
请计算出最少可能的牛的数量。
【文件输入】
第一行,两个用空格隔开的整数,分别表示N和B。
接下来B行,每行一个整数,表示每种牛的音量。
接下来N行,每行一个整数,表示该农场的总音量。
【文件输出】
共一行,一个整数,表示牛的最小数目。如果无解则输出-1。
【输入样例1】
5 2
5
7
0
17
16
20
19
【输出样例1】
4
【样例1说明】
在农场2,有2头品种1的牛和1头品种2的牛;在农场4,有1头品种1的牛。