洛谷P2948

看到题目就觉得这是动规但一直没想到如何状态转移……看了别人的题解之后才有一些想法

f[i][j]:前i单位时间能力值为j可以滑的最多次数

lessons[i][j]:结束时间为i,获得能力为j的时长最短的课程的开始时间

ski[i]:能力值为i可以滑的时间最短的坡的时长

d[i]表示前i时长最多可以滑的坡数

几个状态转移方程:

喝可可:f[i][j]=max(f[i][j],f[i-1][j])

滑雪:f[i][j]=max(f[i][j],f[i-ski[j]][j]+1)

上课:f[i][j]=max(f[i][j],d[lessons[i-1][j]])

随手贴个代码:

 #include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int lessons[][],ski[],f[][],d[];
//lessons[i][j]表示结束时间为i,能力为j的课程的最晚开始时间
//ski[i]表示能力值为i可以滑的时间最短的坡的时长
//f[i][j]表示前i时长能力值为j最多可以滑的坡数
//d[i]表示前i时长最多可以滑的坡数
int t,s,n;
int main()
{
scanf("%d%d%d",&t,&s,&n);
for(int i=;i<=s;i++)//初始化lessons[][]
{
int m,l,a;
scanf("%d%d%d",&m,&l,&a);
lessons[l+m-][a]=max(lessons[l+m-][a],m);
}
for(int i=;i<=n;i++)//初始化ski[]
{
int c,d;
scanf("%d%d",&c,&d);
for(int j=c;j<=;j++)
if(!ski[j]||ski[j]>d)
ski[j]=d;
}
for(int i=;i<=t;i++)
for(int j=;j<=;j++)
f[i][j]=-;
f[][]=;
for(int i=;i<=t;i++)
{
for(int j=;j<=;j++)
{
f[i][j]=max(f[i][j],f[i-][j]);//喝可可
if(ski[j]&&i>=ski[j])//滑雪
f[i][j]=max(f[i][j],f[i-ski[j]][j]+);
if(lessons[i-][j])//上课
f[i][j]=max(f[i][j],d[lessons[i-][j]]);
d[i]=max(d[i],f[i][j]);
}
}
printf("%d\n",d[t]);
return ;
}

注意两个问题:

1、初始化:f[0][1]=0(初始化能力为1),其余都为负无穷!

2、状态转移方程没有f[i][j]=max(f[i][j],f[i][j-1)!

第一次写的时候因为这两个问题WA了……但自己也没想出来为什么……如果有神犇理解的话敬请指教w  

最后吧分享一句关于动规挺有感触的一句话……

除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解

(新人第一次发帖,多多指教)

[USACO2009 OPEN] 滑雪课 Ski Lessons的更多相关文章

  1. [USACO09OPEN]滑雪课Ski Lessons

    题目描述 Farmer John wants to take Bessie skiing in Colorado. Sadly, Bessie is not really a very good sk ...

  2. BZOJ 1571: [Usaco2009 Open]滑雪课Ski

    Description Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S& ...

  3. [bzoj1571][Usaco2009 Open]滑雪课Ski

    题目描述 Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S<=100 ...

  4. 【贪心优化dp决策】bzoj1571: [Usaco2009 Open]滑雪课Ski

    还有贪心优化dp决策的操作…… Description Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里 ...

  5. BZOJ——1571: [Usaco2009 Open]滑雪课Ski

    http://www.lydsy.com/JudgeOnline/problem.php?id=1571 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit:  ...

  6. P2948 [USACO09OPEN]滑雪课Ski Lessons

    题意:Bessie去滑雪,限时T,滑雪场有S节课 每节课开始于$m_i$,长度为$l_i$,可以将Bessie的能力值变成$a_i$(注意是变成不是增加) 有n个滑雪坡,去滑雪需要$c_i$的能力,并 ...

  7. [luoguP2948] [USACO09OPEN]滑雪课Ski Lessons(DP)

    传送门 f[i][j]表示i时刻能力值为j的最大滑雪数 显然f[0][1]=0,开始搜索 三种转移: ①美美的喝上一杯**:f[i+1][j]=max(f[i+1][j],f[i][j]) ②滑雪,f ...

  8. 1571. [Usaco2009 Open]滑雪课Ski

    传送门 可以想到 $dp$,设 $f[i][j]$ 表示当前等级为 $i$,时间为 $j$ 的最大滑雪次数 显然上课不会上让自己等级降低的课,所以第一维 $i$ 满足无后效性 然后直接枚举 $i,j$ ...

  9. bzoj千题计划156:bzoj1571: [Usaco2009 Open]滑雪课Ski

    http://www.lydsy.com/JudgeOnline/problem.php?id=1571 DP不一定全部全状态转移 贪心的舍去一些不合法的反而更容易转移 在一定能力范围内,肯定滑雪所需 ...

随机推荐

  1. ubuntu通过windows下的ccproxy代理上网

    网上教程很多,需要注意的是将ubuntu的ip和windows的Ip设置到同一个网段,即子网掩码是1的对应的部分要相同.由于没有配置到同一个网段,折腾了我好久.

  2. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作

    再完善.saveUser的方法 测试保存的操作 报错了 SqlSession的insert的源码 我们在执行Insert的时候,并没有把user对象传过去 usersex改成sex 再次测试

  3. 4.2.k8s.Ingress-Nginx

    Ingress-Nginx ingress-nginx为7层代理,通过配置域名访问后端服务 ingress-nginx容器和kubernetes api交互,动态生成nginx配置 ingress服务 ...

  4. Java 项目管理工具 - Maven

    类似于 PHP 中的 Composer,NodeJS 中的 npm,Java 用 Maven 来管理依赖关系. 实际上,Maven 负责管理 Java 项目开发过程中的几乎所有的东西: 版本控制:Ma ...

  5. Jmeter---不同线程组的使用介绍(转)

    在添加线程组:发现线程组种类挺多的  翻查资料后对几个工具进行总结: 原本想写三个 在翻阅资料,后发现下面博文比较详情, 本文大部分来自: https://blog.csdn.net/sinat_32 ...

  6. cocos2dx基础篇(18) 数据存储CCUserDefault

    在cocos2dx中提供了一个数据存储类CCUserDefault,可以作为一个轻量级的数据库来使用.它支持五种数据bool.int.float.double.string的存储. [3.x]     ...

  7. 【Qt开发】如何将内存图像数据封装成QImage V1

    如何将内存图像数据封装成QImage 当采用Qt开发相机数据采集软件时,势必会遇到采集内存图像并进行处理(如缩放.旋转)操作.如果能够将内存图像数据封装成QImage,则可以利用QImage强大的图像 ...

  8. RabbitMQ 安装步骤

    RabbitMQ安装步骤 一.安装erlang 1.下载erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1 ...

  9. 我在拼多多百亿补贴时买了个MAC probook16G苹果笔记本电脑用来写代码,有图有真相,靠谱吗?

    在拼多多买了拼了个MACBOOK pro,有点担心质量问题,商家承诺有电子普票,有大哥在上面买过贵重物品吗?欢迎评论留言交流

  10. Field baseMapper in com.baomidou.mybatisplus.extension.service.impl.ServiceImpl required a single bean, but xx were found:

    在学习使用 mybatis-plus 时,遇到一个奇怪的异常 如 代码一: 代码一: Error starting ApplicationContext. To display the conditi ...