第1题 绿组. 奶牛接力赛[relay]

题目描述

农夫约翰已经为一次赛跑选出了K(2≤K≤40)头牛组成了一支接力队.赛跑在农夫约翰所拥有的农场上进行,农场的编号为1到Ⅳf4≤Ⅳ< 800),Ⅳ个农场之间共有M(1≤M≤4000)条双向道路,每条双向道路连接一对不同的农场,一对不同的农场之间最多只有一条双向道路.你将得到每条牛为了穿过每个道路所需要的时间.比赛的起点设在1号农场,终虑设在Ⅳ号农场,比赛开始后第一头牛开始从1号农场出发,在Ⅳ号农场到达终点.第一头牛结束之后马上就让下一头牛从1号农场开始,跑向Ⅳ号农场,直到所有的牛都跑过一次为止.

作为比赛的规则,任意的2头牛跑过的路线不能完全相同(路线是指跑过的农场的序列).但对某头牛来说它可以经过某个农场多次.写一个程序为农夫约翰的接力队计算所有的牛完成这次比赛所需的最少的时间.可以保证对所有的测试数据要求的最少时间是一定存在的.

输入说明

第1行包含3个整数:K,Ⅳ,M.

从第2行到第M+1行:每行包括描述一条道路的3个整数,分别表示该道路连接的两个农场的编号,以及每条牛穿过这条路所需的时间(范围在[1,9500]).

输出说明

输出文件仅一行,表示这K头奶牛完成接力赛所用的最短时间(假定每单位长度需要花费一单位时间).

输入样例

4 5 8

1 2 1

1 3 2

1 4 2

2 3 2

2 5 3

3 4 3

3 5 4

4 5 6

输出样例

23

样例说明

奶牛1  1~2~5    4

奶牛2  1~3~5    6

奶牛3  1~2_1_2~5    6

奶牛4  1_2_3_5    7

来源信息

Brian Dean.2001

第2题 绿组.重建家园[quake]

题目描述

地震已经破坏了农夫约翰所有的农场以及所有连接农场的道路.作为一个意志坚强的人,他决定重建所有的农场.在重建全部Ⅳ(1≤Ⅳ≤400)个农场之前,首先必须把所有农场用道路连接起来,即任意两个农场之间必须有至少一条通路.在研究了地图之后,农夫约翰已经得出了结论:M(1《M≤10000)条双向的道路可以在较短的时间内建造好.由于约翰的资金有限,他想以尽可能便宜的方法完成工程.

碰巧,农场里的奶牛们组建了一个专门从事重新改造在地震中被破坏的农场道路的工程公司,约翰决定把道路重建的工作交给奶牛们去完成.这些牛也有着锐利的商务感觉,它们希望从工程中获得最大的利益.约翰和奶牛们经过协商,约翰愿意拿出F(1≤F≤2×109)元钱给奶牛们用于道路重建.他要求奶牛们把所有农场用道路连接起来,即任意两个农场之间必须有至少一条通路.

奶牛们根据地图估算出了建造每条道路的成本c(l≤c≤2×109)及用时t(l≤t≤2×109). -

对农场之间可以有1条以上可重建道路,并且对于给定的测试数据将所有农场连接起来是能够做到的.

现在奶牛们找到你,要求你编一个程序求出重建农场道路能让奶牛们获得的最大利润率.也就是使得剩余经费与所花时间的比值(赚钱速度)最大.

输入说明

第1行为三个整数Ⅳ,M和F.

第2行到第M+1行,每一行都包括4个用空格隔开的整数:i,j,c,£分别表示可以重建的一条道路的两端连接的农场,以及重建该条道路的成本和时间.

输出说明

包含一个实数,表示剩余经费与所花时间的比值,保留4位小数.如果不可能以现有经费连接所有道路,输出0.0000.

输入样例

5 100

2 20

3 20

4 20

5 20

3 23

输出样例

1. 0625

样例说明

奶牛们可以选择修建最后的四条道路,这样所花经费为83,利润为17,所用时间为16.所以,他们在16单位时间内获利17元,比值为(100-83)/16=1.0625.

来源信息

Chandrasekaran, 1977; Tvarozek, 2001

第3题 绿组.奶牛排序[sort]

题目描述

农夫约翰有C(2≤C≤400)头牛和相同数量的畜栏.

这些牛对于她们畜栏的安排特别反复无常.当她们按随机的顺序进入畜栏的时候,必须按适当的顺序对她们进行重新安排,否则,她们的奶产量将减少.

为了找刭适当的顺序,每头牛都检查其标记(是一个不到2000000的正整数),来保证她右边牛的标记不比自己小,并且在她左边的牛的标记不比自己大.有趣的是,带最小的标记的牛左边的牛却可以带有最大的标记(同样带最大的标记的牛右边的牛可以带有最小的标记).

如果符合上述排列规则,就说牛按适当的顺序排列.注意:这些排列规则是用来描述一系列有序数表的(而不是什么怪异的东西).例如,如果牛的标记是2,2,4,5,7,则畜栏中牛的适当排列可以有以下这几种:

2, 2, 4, 5, 7

7, 2, 2, 4, 5

5, 7, 2, 2, 4

4, 5, 7, 2, 2

2, 4, 5, 7, 2

如果你和牛打过交道,你就知道要移动她们是很难的.为了重新安排这些牛,农夫约翰可以将牛引出畜栏,穿过,进入其他的畜栏.约翰只有两只手,每次至多只能引导2头牛,每个畜栏任何时候最多只能放1头牛.每次把牛引出畜栏,或引入畜栏,约翰都要消耗10焦耳能量.而且,每引导一头牛走过一个畜栏的长度,他也要消耗一焦耳.但如果他不引导牛,而只是独自在畜栏间行走,就不消耗能量.这样,如果他引导两头牛从第3畜栏走到第7畜栏,他将消耗(7-3) x2=8焦耳能量.不带牛独自走回畜栏1则损失0焦耳能量.

请计算:约翰为把牛放入适当的顺序所需耗费的最小能量.

输入说明

第1行一个数C,接下来的C行每行代表初始状态下牛栏中牛的编号.

输出说明

仅一个数,表示需要花费的最小能量.

输入样例

5

5

2

7

4

2

输出样例

66

样例说明

行动    消耗  牛棚  约翰的位置

牛从棚1出来  10  *2 7 4 2    5

走到棚2    1  *2 74 2    5

牛从棚2出来  10  **74 2    5 2

牛5进入棚2  10  **5 7 4 2    2

走到棚4    2  *5 74 2    2

牛从棚4出来  10  *57*2    2 4

牛2进入棚4  10  *5 7 2 2    4

走到棚1    3  *5 7 2 2    4

牛4进入棚1  10  4 5 7 2 2

最后的序列:4,5,7,2,2.总花费:66.

来源信息

Kolstad&Burch, 2001

第4题 绿组.奶牛广告[sign]

题目描述

农夫约翰有一块位于高速公路一侧的农场,他想在奶牛身上打上广告语给自己生产的奶制品作些宣传.这样当奶牛们排成一排吃草时,开车的人就能看到广告.于是约翰依次在C(2≤C≤20)共奶牛的身上刷上了K(2≤K≤4)个字母组成了一句广告语,广告语中是没有空格.

在第二天早上出奶之后,农夫约翰注意到他刷在奶牛身上的广告语显示出错了,原因是奶牛们排错了次序.更糟糕的是,农夫约翰也忘了最初的广告语,因为约翰十分的健忘.好在约翰文化程度很低,他认识的单词并不多,他所用的广告语使用的单词都是他所认识的.约翰认识的单词不超过的D(1≤D≤150)个.一个单词可以不止一次地用于广告语中.

现在给出所有奶牛身上的信息,以及约翰认识的所有单词,请你编一个程序,帮助农夫约翰重建最初的信息.

输入说明

第1行为3个用空格隔开的整数K,C,D.

第2到C+1行每行均为K个字母,表示一头奶牛身上的信息.

从C+2行到C+D+1行每行为一个约翰认识的单词,单词的长度不超过10.

输出说明

第1行为在字典序列中最小的可能的句子.

第2行一个整数,表示有多少句可能的句子.

如果不存在符合要求的句子,输出“NOSOLUTIONS”.

输入样例

3  5  7

TEN

ATT

NAT

BAR

ACK

AT

ATTACK

BARN

CHICKENS

CHOPPERS

cows

TEN

输出样例

ATTACK BARN AT TEN

6

样例说明

六种可能的广告语是:

I  TEN ATTACK BARN AT

2  TEN BARN AT ATTACK

3  ATTACK TEN BARN AT

4  ATTACK BARN AT TEN

5  BARN AT TEN ATTACK

6  BARN AT ATTACK TEN

来源信息

Galperin,2001

第5题 绿组.垃圾井[well]

题目描述

卡门一农夫约翰极其珍视的一条荷斯坦奶牛一已经落了到垃圾井中.垃圾井是农夫们扔垃圾的地方,它的深度为D(2≤D≤100)英尺.卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了.另外,卡门可以通过吃一些垃圾来维持自己的生命.每个垃圾都可以用来吃或堆放.并且堆放垃圾不用花费卡门的时间.

假设卡门预先知道了每个垃圾扔下的时间互,以及每个垃圾堆放的高度H和吃进该垃圾能维持生命的时间Fi.卡门体内现有足够持续10小时的能量.如果卡门10小时内没有进食就将饿死.

求出卡门最早能逃出井外的时间.

输入说明

第1行为2个整数,D和G(1≤G≤100),G为被投入井的垃圾的数量

第2到第G+1行每行包括3个整数:Ti(0<Ti≤1000),表示垃圾被投进井中的时间;Fi(l≤Fi≤30),表示该垃圾能维持卡门生命的时间;和Hi(l≤Hi≤25),该垃圾能垫高的高度.

输出说明

如果卡门可以爬出陷阱,输出一个整表示最早什么时候可以爬出;否则输出卡门最长可以存活多长时间.

输入样例

20  4

5  4  9

9  3  2

12  6  10

13  1  1

输出样例

13

样例说明

卡门堆放她收到的第1个垃圾:高度变为9;卡门吃掉她收到的第2个垃圾,使她的生命从10小时延伸到13小时;卡门堆放第3个垃圾,高度变为19;卡门堆放第4个垃圾,高度变为20.

来源信息

Cox, 2001

USACO 2001 OPEN的更多相关文章

  1. Cow Relays 【优先队列优化的BFS】USACO 2001 Open

    Cow Relays Time Limit: 1000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Tota ...

  2. Luogu 4951 [USACO 2001 OPEN]地震

    水个博客玩. $01$分数规划. 题目要求$\frac{F - \sum_{i = 1}^{n}C_i}{T_i}$最大,设$\frac{F - \sum_{i}C_i}{T_i} \geq e$,移 ...

  3. [ USACO 2001 OPEN ] 地震

    \(\\\) Description​ 给出一张 \(n\) 个点 \(m\) 条边的无向图,现在要建一棵生成树. 每条边都有消耗的时间 \(t_i\),也有建造的代价 \(w_i\) . 最后总金给 ...

  4. USACO 2001 OPEN earthquake /// 最优比例生成树

    题目大意: https://www.cnblogs.com/forever97/p/3603572.html 讲解:https://www.jianshu.com/p/d40a740a527e 题解: ...

  5. [USACO]地震 (二分答案+最优比率生成树详解)

    题面:[USACO 2001 OPEN]地震 题目描述: 一场地震把约翰家的牧场摧毁了, 坚强的约翰决心重建家园. 约翰已经重建了N个牧场,现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发 ...

  6. USACO Cow Frisbee Team

    洛谷 P2946 [USACO09MAR]牛飞盘队Cow Frisbee Team 洛谷传送门 JDOJ 2632: USACO 2009 Mar Silver 2.Cow Frisbee Team ...

  7. USACO 5.5 章节

    Picture 题目大意 IOI 1998 求n (<=5000)个矩形 覆盖的图形 的周长(包括洞), 坐标范围[-10000,10000] 题解 一眼离散化+2维线段树,但仔细一想 空间不太 ...

  8. USACO . Your Ride Is Here

    Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs often co ...

  9. 【USACO 3.1】Stamps (完全背包)

    题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200. 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出 ...

随机推荐

  1. SQL server 2008无法连接Local服务器的解决办法

    SQL的有些服务总是在关机的时候自动关闭,然后你可以打开 控制面板——管理工具——服务,然后找到SQL相关的服务,右键——属性,里面有设置,可以设成自动启动

  2. sql大数据量查询的优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. iOS 证书那些事

    关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾.对于一个iOS开发小白.半吊 ...

  4. atan(正切函数)

    atan函数:返回数值的余切值 原型:double atan(double x) <pre name="code" class="cpp">#inc ...

  5. R与数据分析旧笔记(八)多重共线性

    多重共线性(线性代数叫线性相关) 多重共线性(线性代数叫线性相关) 1.什么是多重共线性 2.多重共线性对回归模型的影响 3.利用计算特征根发现多重共线性 4.Kappa()函数 例题1 考虑一个有六 ...

  6. 原生js倒计时和显示当前时间

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. Yii2.0中文开发向导——自定义日志文件写日志

    头部引入log类use yii\log\FileTarget; $time = microtime(true);$log = new FileTarget();$log->logFile = Y ...

  8. Tensorflow的CNN教程解析

    之前的博客我们已经对RNN模型有了个粗略的了解.作为一个时序性模型,RNN的强大不需要我在这里重复了.今天,让我们来看看除了RNN外另一个特殊的,同时也是广为人知的强大的神经网络模型,即CNN模型.今 ...

  9. SQL Server 通配符为目标字符的查找

    create table t(x int identity(1,1) primary key,v nvarchar(32));go insert into t(v) values('this is % ...

  10. java axis web service

    编写 java调用web service的客户端比较简单,其中webservice为上一篇gsoap创建的server. package clientTest; import java.rmi.Rem ...