简单的dp..

dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径.

设f(i)= max(dp(x,y))(1≤x≤N, 1≤y≤i), g(i,j) = max(dp(i, k))(1≤k≤j)

那么dp(i,j) =  max(f(j+delta), g(i,j+1))+cnt[i][j]. 递推即可. 时间复杂度O(NH)

-----------------------------------------------------------------------

#include<bits/stdc++.h>
 
using namespace std;
 
const int maxn = 2009;
 
int N, H, delta, cnt[maxn][maxn];
int dp[maxn][maxn], f[maxn], g[maxn][maxn];
 
void init() {
scanf("%d%d%d", &N, &H, &delta);
memset(cnt, 0, sizeof cnt);
for(int i = 0; i < N; i++) {
int t; scanf("%d", &t);
while(t--) {
int h; scanf("%d", &h);
cnt[i][h]++;
}
}
}
 
void work() {
f[H] = 0;
for(int i = 0; i < N; i++)
   f[H] = max(f[H], dp[i][H] = g[i][H] = cnt[i][H]);
for(int h = H; --h; ) {
f[h] = f[h + 1];
   for(int i = 0; i < N; i++) {
    int t = g[i][h + 1];
    g[i][h] = t;
    if(h + delta <= H) t = max(t, f[h + delta]);
    dp[i][h] = t + cnt[i][h];
    f[h] = max(f[h], dp[i][h]);
    g[i][h] = max(g[i][h], dp[i][h]);
   }
}
int ans = 0;
for(int i = 0; i < N; i++)
   ans = max(ans, dp[i][1]);
printf("%d\n", ans);
}
 
int main() {
init();
work();
return 0;
}

-----------------------------------------------------------------------

1270: [BeijingWc2008]雷涛的小猫

Time Limit: 50 Sec  Memory Limit: 162 MB
Submit: 1004  Solved: 483
[Submit][Status][Discuss]

Description

 

Input

Output

Sample Input

Sample Output

8

HINT

Source

BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )的更多相关文章

  1. bzoj 1270: [BeijingWc2008]雷涛的小猫 简单dp+滚动数组

    1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Descrip ...

  2. [bzoj 1270][BeijingWc2008]雷涛的小猫

    Description 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学 生宿舍管理条例的).  在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可 ...

  3. 【BZOJ1270】1270: [BeijingWc2008]雷涛的小猫 DP

    Description   Input Output Sample Input Sample Output 8 HINT Source 唉这么蠢的Dp没一下子看出来,Dp真是太弱了啦. #includ ...

  4. 1270: [BeijingWc2008]雷涛的小猫

    1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 905  Solved: 430[Submit][ ...

  5. bzoj1270 BeijingWc2008 雷涛的小猫 DP

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1270 比较水的一道dp f1[i]为高度为i的时候的最大值 f2[i]为当前高度在第i棵树 ...

  6. B1270 [BeijingWc2008]雷涛的小猫 dp

    这个题的原始方法谁都会,但是n^3会T.之后直接优化,特别简单,就是每次处理出来每层的最大值,而不用枚举.之前没这么做是因为觉得在同一棵树的时候没有下落,所以不能用这个方法.后来想明白了,在同一棵树上 ...

  7. 【BZOJ】1270: [BeijingWc2008]雷涛的小猫(DP+水题)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1270 这完全是一眼题啊,但是n^2的时间挺感人.(n^2一下的级别请大神们赐教,我还没学多少dp优化 ...

  8. 【BZOJ】1270 [BeijingWc2008]雷涛的小猫

    [算法]DP [题解]f1[i]表示第i棵树当前高度能得到的最多果子数 f2[i]表示高度i能得到的最多果子数. 于是有: f1[j]=max(f1[j],f2[i+delta])+mp[j][i]; ...

  9. 【bzoj1270】[BeijingWc2008]雷涛的小猫 dp

    题目描述   输入 输出 样例输入 样例输出 8 题解 dp 设f[i][j]表示在第i棵树的j高度时最多吃到的柿子数. 那么只有两种可能能够到达这个位置:滑下来.跳下来. 滑下来直接用f[i][j+ ...

随机推荐

  1. servlet三种实现方式之一实现servlet接口

    servlet有三种实现方式: 1.实现servlet接口 2.继承GenericServlet 3.通过继承HttpServlet开发servlet 第一种示例代码如下(已去掉包名): import ...

  2. 读取IOS的相应路径

    //    IOS相应路径 NSString* bundlePath = [[NSBundle mainBundle] bundlePath]; NSLog(@"bundlePath = % ...

  3. Mathematica

    Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一 ...

  4. 【图文教程】用“iz3d”软件将您的游戏打造为红蓝3D游戏。

    iz3d是一款能将普通3D游戏转换为红蓝3D游戏的软件.基本上支持所有游戏,或许没用过的人会认为这只是类似于播放器中的一个小功能,将平面图形做成“伪3D”红蓝效果. 实际上不是的,游戏与平面图的结构不 ...

  5. jQuery.fn.serialize 阅读

    今天第一次阅读jQuery源码,因为读到用js对表单的序列化,为的是在ajax操作中将表单中各个域的值传到服务器.书上用了很长的步骤,判断每一个表单域的属性,然后拼接. 大概是这样: function ...

  6. Flex4 设置combobox选项不可编辑

    近日做数据的增删改查,使用的flex4的ComboBox控件---> flex4中ComboBox其实就是TextInput的叠加 flex3中ComboBox其实就是Label的叠加 开始是使 ...

  7. wordpress常用插件汇总

    WordPress之所以能成为目前最具人气的独立博客程序,除了无数爱好者为它开发的主题外,源源不断的插件支持也是重要的原因之一.wordpress的强大,也是在于无数爱好者源源不断的主题和插件. wo ...

  8. BFG

    "/"应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 提供程序集合中不 ...

  9. ajax的简单操作

    项目需要,简单研究了下ajax 需要在html中引入js文件 编写js函数 function testAjax() { $.ajax({ type: 'get', //请求方式 get/post ur ...

  10. TextBox控件只允许输入出生日期,并验证年龄不得小于18岁

    1.Body tag <form id="form1" runat="server"> <div> <asp:Label ID=& ...