-
我的第一次USACO月赛 - [My OI]
2008年02月08日
今天第一次做了USACO月赛.
真是不爽啊.昨天听raulliubo说有月赛,于是今天早晨爬起来做.
因为以前从来没做过,所以得先做Bronze.
Bronze真的很水,半个小时不到升Sliver.似乎今天做比赛的牛们都差不多这个时间升的...本来说写题解的,实在懒得写了.
今天连续写6道题,头都大了...
看看吧,如果什么时候想写再写出来.升到Sliver之后,我没吃早点接着写程序.其实本来应该休息一会儿的...不知道怎么就把题目打开了.
第一题和第三题顺利的写完了,第二题想了半天写了一个及其WS的程序,用我跟我哥说的话,就是"又臭又长".终于调过了自己的几个数据,偶然被pig牛指出第一题写的不对.于是使劲改第一题,但很可惜到最后和pig的对拍也不一样.还有10min的时候实在查不出来了,狠心申请move up,结果一直到现在Rob也没给我回复...
而同样申请了move up的pig牛则收到了回复...显然我的第一题挂了...等着吧,看看过两天成绩出来之后还能不能到gold.
如果能的话也可以了...第一次做USACO月赛啊...附题目:
**********************************************************************
铜组题目
**********************************************************************
编号11~13,共3题
**********************************************************************题目 11: 晚餐队列安排 (铜组) [Ionescu Victor and Brian Dean, 2007]
为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐。每天晚饭前,奶牛们都
会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前
半部分则由设定为第1批就餐的奶牛占据。由于奶牛们不理解FJ的安排,晚饭前
的排队成了一个大麻烦。第i头奶牛有一张标明她用餐批次D_i(1 <= D_i <= 2)的卡片。虽然所有N
(1 <= N <= 30,000)头奶牛排成了很整齐的队伍,但谁都看得出来,卡片上的
号码是完全杂乱无章的。在若干次混乱的重新排队后,FJ找到了一种简单些的方法:奶牛们不动,他
沿着队伍从头到尾走一遍,把那些他认为排错队的奶牛卡片上的编号改掉,最终
得到一个他想要的每个组中的奶牛都站在一起的队列,例如112222或111122。有
的时候,FJ会把整个队列弄得只有1组奶牛(比方说,1111或222)。你也晓得,FJ是个很懒的人。他想知道,如果他想达到目的,那么他最少得
改多少头奶牛卡片上的编号。所有奶牛在FJ改卡片编号的时候,都不会挪位置。程序名: diningb
输入格式:
* 第1行: 1个整数:N
* 第2..N+1行: 第i+1行是1个整数,为第i头奶牛的用餐批次D_i
输入样例 (diningb.in):
7
2
1
1
1
2
2
1输入说明:
一共有7头奶牛,其中有3头奶牛原来被设定为第二批用餐。
输出格式:
* 第1行: 输出1个整数,为FJ最少要改几头奶牛卡片上的编号,才能让编号变成
他设想中的样子输出样例 (diningb.out):
2
输出说明:
FJ选择改第1头和最后1头奶牛卡片上的编号。
**********************************************************************
题目 12: 越野跑 [Jeffrey Wang, 2008]
为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练
。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:
奶牛独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。整条山路被贝茜划分成T个长度相同的小段(1 <= T <= 100,000),并且,
贝茜用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示
第i个小段是上坡、平地,或是下坡。贝茜要花U秒(1 <= U <= 100)才能跑完一段上坡路,跑完一段平地的耗时是
F秒(1 <= F <= 100),跑完一段下坡路要花D秒(1 <= D <= 100)。注意,沿山路
原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成
了上坡路。贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多远。
程序名: racing
输入格式:
* 第1行: 5个用空格隔开的整数:M,T,U,F,以及D
* 第2..T+1行: 第i+1行为1个字母S_i,描述了第i段山路的路况
输入样例 (racing.in):
13 5 3 2 1
u
f
u
d
f输入说明:
贝茜跑步的最大耗时为13秒(这么短...),她跑步的山路一共被划成5段。
贝茜跑完一段上坡路的耗时为3秒,平地为2秒,下坡路为1秒。山路各段的走向
如下图所示:_/\_
/输出格式:
* 第1行: 输出1个整数,为贝茜在按时回到农场的前提下,最多能跑到多远
输出样例 (racing.out):
3
输出说明:
贝茜跑完山路的前3段,然后返回,总耗时为3 + 2 + 3 + 1 + 2 + 1 = 12
秒,只比她能在外面呆的时限少1秒。如果她跑得更远,就无法按时回到农场。**********************************************************************
题目 13: 奶牛式乘法 [Jeffrey Wang, 2007]
做厌了乘法计算题的贝茜,自创了一种新的乘法运算法则。在这套法则里,
A*B等于一个取自A、一个取自B的所有数字对的乘积的和。比方说,123*45等于
1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54。对于2个给定的数A、B
(1 <= A, B <= 1,000,000,000),你的任务是,用新的乘法法则计算A*B的值。程序名: cowmult
输入格式:
* 第1行: 2个用空格隔开的整数:A、B
输入样例 (cowmult.in):
123 45
输入说明:
相乘的2个数分别为123 和 45。
输出格式:
* 第1行: 输出1个整数,即新的乘法法则下A*B的值
输出样例 (cowmult.out):
54
**********************************************************************
Translation by Yan Long**********************************************************************
银组题目
**********************************************************************
编号6~8,共3题
**********************************************************************题目 6: 连线游戏 [Neal Wu, 2007]
Farmer John最近发明了一个游戏,来考验自命不凡的贝茜。游戏开始的时
候,FJ会给贝茜一块画着N (2 <= N <= 200)个不重合的点的木板,其中第i个点
的横、纵坐标分别为X_i和Y_i (-1,000 <= X_i <=1,000;
-1,000 <= Y_i <= 1,000)。贝茜可以选两个点画一条过它们的直线,当且仅当平面上不存在与画出直线
平行的直线。游戏结束时贝茜的得分,就是她画出的直线的总条数。为了在游戏
中胜出,贝茜找到了你,希望你帮她计算一下最大可能得分。程序名: lines
输入格式:
* 第1行: 输入1个正整数:N
* 第2..N+1行: 第i+1行用2个用空格隔开的整数X_i、Y_i,描述了点i的坐标
输入样例 (lines.in):
4
-1 1
-2 0
0 0
1 1输出格式:
* 第1行: 输出1个整数,表示贝茜的最大得分,即她能画出的互不平行的直线数
输出样例 (lines.out):
4
输出说明:
贝茜能画出以下4种斜率的直线:-1,0,1/3以及1。
**********************************************************************
题目 7: 流星雨 [Jeffrey Wang, 2007]
贝茜听说了一个骇人听闻的消息:一场流星雨即将袭击整个农场,由于流星
体积过大,它们无法在撞击到地面前燃烧殆尽,届时将会对它撞到的一切东西
造成毁灭性的打击。很自然地,贝茜开始担心自己的安全问题。以FJ牧场中最
聪明的奶牛的名誉起誓,她一定要在被流星砸到前,到达一个安全的地方(也就
是说,一块不会被任何流星砸到的土地)。如果将牧场放入一个直角坐标系中,
贝茜现在的位置是原点,并且,贝茜不能踏上一块被流星砸过的土地。根据预报,一共有M颗流星(1 <= M <= 50,000)会坠落在农场上,其中第i颗
流星会在时刻T_i (0 <= T_i <= 1,000)砸在坐标为(X_i, Y_i)
(0 <= X_i <= 300;0 <= Y_i <= 300)的格子里。流星的力量会将它所在的格子
,以及周围4个相邻的格子都化为焦土,当然贝茜也无法再在这些格子上行走。贝茜在时刻0开始行动,每1个时刻中,她能移动到相邻的(一般是4个)
格子中的任意一个,当然目标格子要没有被烧焦才行。如果一个格子在时刻t被
流星撞击或烧焦,那么贝茜只能在t之前的时刻在这个格子里出现。请你计算一下,贝茜最少需要多少时间才能到达一个安全的格子。
程序名: meteor
输入格式:
* 第1行: 1个正整数:M
* 第2..M+1行: 第i+1行为3个用空格隔开的整数:X_i,Y_i,以及T_i
输入样例 (meteor.in):
4
0 0 2
2 1 2
1 1 2
0 3 5输入说明:
一共有4颗流星将坠落在农场,它们落地点的坐标分别是(0, 0),(2, 1),
(1, 1)以及(0, 3),时刻分别为2,2,2,5。
t = 0 t = 2 t = 5
5|. . . . . . . 5|. . . . . . . 5|. . . . . . .
4|. . . . . . . 4|. . . . . . . 4|# . . . . . . * = 流星落点
3|. . . . . . . 3|. . . . . . . 3|* # . . . . .
2|. . . . . . . 2|. # # . . . . 2|# # # . . . . # = 行走禁区
1|. . . . . . . 1|# * * # . . . 1|# # # # . . .
0|B . . . . . . 0|* # # . . . . 0|# # # . . . .
-------------- -------------- --------------
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6输出格式:
* 第1行: 输出1个整数,即贝茜逃生所花的最少时间。如果贝茜无论如何都无法
在流星雨中存活下来,输出-1输出样例 (meteor.out):
5
输出说明:
如果我们观察在t=5时的牧场,可以发现离贝茜最近的安全的格子是(3,0)
——不过由于早在第二颗流星落地时,贝茜直接跑去(3,0)的路线就被封死了。
离贝茜第二近的安全格子为(4,0),但它的情况也跟(3,0)一样。再接下来的格子
就是在(0,5)-(5,0)这条直线上。在这些格子中,(0,5),(1,4)以及(2,3)都能在
5个单位时间内到达。5|. . . . . . .
4|. . . . . . .
3|3 4 5 . . . . 某个合法的逃生方案中
2|2 . . . . . . 贝茜每个时刻所在地点
1|1 . . . . . .
0|0 . . . . . .
--------------
0 1 2 3 4 5 6**********************************************************************
题目 8: 麻烦的聚餐 [Ionescu Victor, 2007]
为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐。每天晚饭前,奶牛们都
会在餐厅前排队入内,按FJ的设想,所有第3批就餐的奶牛排在队尾,队伍的前
端由设定为第1批就餐的奶牛占据,中间的位置就归第2批就餐的奶牛了。由于奶
牛们不理解FJ的安排,晚饭前的排队成了一个大麻烦。第i头奶牛有一张标明她用餐批次D_i(1 <= D_i <= 3)的卡片。虽然所有N
(1 <= N <= 30,000)头奶牛排成了很整齐的队伍,但谁都看得出来,卡片上的
号码是完全杂乱无章的。在若干次混乱的重新排队后,FJ找到了一种简单些的方法:奶牛们不动,他
沿着队伍从头到尾走一遍,把那些他认为排错队的奶牛卡片上的编号改掉,最终
得到一个他想要的每个组中的奶牛都站在一起的队列,例如111222333或者
333222111。哦,你也发现了,FJ不反对一条前后颠倒的队列,那样他可以让
所有奶牛向后转,然后按正常顺序进入餐厅。你也晓得,FJ是个很懒的人。他想知道,如果他想达到目的,那么他最少得
改多少头奶牛卡片上的编号。所有奶牛在FJ改卡片编号的时候,都不会挪位置。程序名: egroup
输入格式:
* 第1行: 1个整数:N
* 第2..N+1行: 第i+1行是1个整数,为第i头奶牛的用餐批次D_i
输入样例 (egroup.in):
5
1
3
2
1
1输入说明:
队列中共有5头奶牛,第1头以及最后2头奶牛被设定为第一批用餐,第2头
奶牛的预设是第三批用餐,第3头则为第二批用餐。输出格式:
* 第1行: 输出1个整数,为FJ最少要改几头奶牛卡片上的编号,才能让编号变成
他设想中的样子输出样例 (egroup.out):
1
输出说明:
如果FJ想把当前队列改成一个不下降序列,他至少要改2头奶牛的编号,一
种可行的方案是:把队伍中2头编号不是1的奶牛的编号都改成1。不过,如果FJ
选择把第1头奶牛的编号改成3,就能把奶牛们的队伍改造成一个合法的不上升序
列了。**********************************************************************
Translation by Yan Long随机文章:
rp不够真的能让人郁闷致死啊... 2008年04月29日一不小心USACO Gold了... 2008年03月16日USACO 1.5.4 Checker Challenge 2008年03月12日FIGHT 2008年07月25日[原创]Splay教程--The Magical Splay 2008年07月21日

评论