题目名称 754. [USACO Open09] 滑雪训练
输入输出 ski.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcqw 于2012-04-13加入
开放分组 全部用户
提交状态
分类标签
动态规划
分享题解
通过:32, 提交:97, 通过率:32.99%
Gravatar胡嘉兴 100 0.022 s 3.20 MiB C++
Gravatar201101 100 0.027 s 4.27 MiB C++
Gravatarkaaala 100 0.029 s 4.28 MiB C++
Gravatarslongle 100 0.046 s 8.14 MiB Pascal
Gravatarqing 100 0.048 s 4.97 MiB C++
Gravatar王者自由 100 0.051 s 6.28 MiB C++
GravatarMakazeu 100 0.052 s 4.23 MiB C++
GravatarLik 100 0.068 s 4.40 MiB C++
Gravatar沉迷学习的假的Keller 100 0.068 s 4.49 MiB C++
GravatarMagic_Sheep 100 0.069 s 8.34 MiB C++
本题关联比赛
20120413
关于 滑雪训练 的近10条评论(全部评论)
hello
Gravatar霖:404
2019-04-09 20:16 3楼
回复 @ZXCVBNM_1 :
GravatarSOBER GOOD BOY
2016-10-09 20:26 2楼
很好的一道动态规划。
f[i][j]为到i时刻,能力为j时的最多滑的次数,然后开三个数组来优化这个动规方程。ks[i][j]为滑雪课时间末端点为i,提到能力值为j时的始端点。我们可以贪心来确定这个值,只有这个值尽可能大才会最优。然后每次对于一次课程,要从f[ks[i][j]][任意能力值]转移过来,所以还要用g[i]表示f[ks[i][j]][任意能力值]的最大值。然后,对于能力要求值相同的滑雪坡道,贪心选择用时少的。然后就好啦
GravatarZXCVBNM_1
2016-08-10 10:41 1楼

754. [USACO Open09] 滑雪训练

★★   输入文件:ski.in   输出文件:ski.out   简单对比
时间限制:1 s   内存限制:256 MiB

农夫约翰想带着他的奶牛Bessie去佛罗里达滑雪,可是,Bessie的滑雪技术真是太差了。

她了解到滑雪学校全天提供滑雪课程,共有S(0 <= S <=100)个滑雪课程可供选择,课程i从时间M_i(1 <= M_i <= 10,000)开始,持续时间为L_i(1 <= L_i <= 10,000),学完该课程滑雪水平将提升至A_i(1 <= A_i <= 100),注意:滑雪水平的提升是绝对的,而不是累加的。

此外Bessie还买了一张滑雪练习场的地图,从图中可以看到练习场每个斜坡的详细情况:从坡上滑下来所需的时间D_i(1 <= D_i <= 10,000),以及滑这个坡所需要的水平等级C_i(1 <= C_i <= 100),为安全起见,只有滑雪水平高于该坡所要求的等级,才可以从这个坡滑下。

Bessie可以把她所有的时间都花在滑雪、上课上,当然她也可以去喝杯热可可,但前提是她必须得在滑雪学校待至时间T(1 <= T <= 10,000),这也意味着她的最后一趟滑坡行动不得超过这个时限。

请确定在这个时间段内,Bessie最多可以滑多少趟斜坡,假定她当天的起始水平为1。

输入格式:
第1行,三个空格隔开的整数:T,S,N;
第2~S+1行,第i+1行有三个空格隔开的整数M_i,L_i,A_i,描述了一个课程的情况;
第S+2~S+N+1行,第S+i+1行为两个空格隔开的整数,C_i,D_i,描述了一个斜坡的情况。

输出格式:
一行,一个整数,即在时限内Bessie能完成的滑坡的最大次数。

样例:
ski.in
10 1 2
3 2 5
4 1
1 3

ski.out
6

输出数据说明
先滑一次第2个斜坡,然后在时间3去上课,上课至时间5,然后在时间结束之前可以再滑五次第1个斜坡,所以共6次滑坡。