USACO 2014 US Open
一、题目概览
中文题目名称 | 牧场装饰 | 里程表 | 牛像展览 |
英文题目名称 | decorate | odometer | fairphoto |
可执行文件名 | decorate | odometer | fairphoto |
输入文件名 | decorate.in | odometer.in | fairphoto.in |
输出文件名 | decorate.out | odometer.out | fairphoto.out |
每个测试点时限 | 1秒 | 1秒 | 1秒 |
测试点数目 | 10 | 10 | 10 |
每个测试点分值 | 10 | 10 | 10 |
比较方式 | 全文比较 | 全文比较 | 全文比较 |
二、运行内存限制
运行内存上限 | 256 M | 256 M | 256 M |
注:感谢老胡鼎力翻译。【错误会有的,语句也不是那么流畅……】
1. 牧场装饰{bronze题3}
【问题描述】
农民约翰有N(1<= N<=50,000)牧场,分别编号为1... N。牧场由M(1<= M<=100,000)条双向道路连接。道路i连接两个不同的牧场牧场A_i(1<= A_I<= N)和牧场B_i(1<= B_i<= N)。同一对牧场之间可能有多条道路连接。
现对每个牧场摆放一块标有大写字母”F”或者”J”的广告牌进行装饰。两个有道路相连的牧场,必须摆放不同字母的广告牌。
“F”字母广告牌的价格要高于”J”字母的广告牌,所以约翰想最大化地使用”J”字母广告牌,请输出这个最大的数目,如果没有可行的摆放方案,则输出”-1”。
【文件输入】
第一行为两个整数N和M。
接下来2..M行,每行两个整数,描述M条双向道路。
【文件输出】
输出共一行,一个整数,表示”J”字母广告牌的最大数目,无解则输出”-1”。
【输入样例1】
4 4
1 2
2 3
3 4
4 1
【输出样例1】
2
【样例1说明】
牧场1和3,或者牧场2和4使用”J”字母广告牌。
2. 里程表{silver题3}
【问题描述】
农民约翰的牛正开始一个美妙的旅程。牛车的里程表上显示一个整数表示里程,旅程开始时里程数为X(100 <= X <= 10^18),结束时里程数为Y(X <= Y <= 10^18)。每当里程表显示一个有趣的数时(包括起点和终点数),牛们会发出愉快的叫声。
对于一个里程数的每一位,如果有至少一半的数字时相同的,则这个里程数一个有趣的数。例如:3223和110是有趣的数,而97791 和 123则不是。
请计算,整个旅程中,牛们会发出多少吃愉快的叫声。
【文件输入】
共一行,两个用空格隔开是整数,表示X和Y。
【文件输出】
共一行,一个整数,表示牛叫的次数。
【输入样例1】
110 133
【输出样例1】
14
【样例1说明】
这14个有趣的数分别是:
110, 111, 112, 113, 114, 115, 116,
117, 118, 119, 121, 122, 131, 133。
3. 牛像展览{gold题1}
【问题描述】
农民约翰的N(1 <= N <= 100,000)头牛正站排成一行拍照。第i头牛站在位置x_i(0..1,000,000,000的整数),每头牛用一个整数b_i(1..8的整数)表示它的品种。没有两头牛站在同一个位置。
农民约翰希望拍摄一个连续区间里的牛,以便参加展览。为了公平起见,他希望该区间内的各品种的牛的数量是相同的,同时至少包含K (K >= 2)个品种的牛,请计算满足条件的照片的最大长度,最大长度即为该区间的长度。
【文件输入】
第一行,两个用空格隔开的整数,分别表示N和K。
第2到第N+1行,每行两个整数,分别表示第i头牛的位置和品种。
【文件输出】
共一行,一个整数,表示照片的最大长度。如果无解则输出-1。
【输入样例1】
9 2
1 1
5 1
6 1
9 1
100 1
2 2
7 2
3 3
8 3
【输出样例1】
6
【样例1说明】
区间[2..8]包含3种牛(分别1,2,3号),数量都为2。