BZOJ 1270 Beijing Wc 2008 雷涛的小猫 动态规划

题目大意:给出一个棵果树,上面有些地方长了一些果子。现在有一只小猫想去吃这些果子,他从最高处往下跳,每到一个地方可以吧这个地方的果子全吃掉。也可以向旁边的果树上跳。问小猫最多能吃到多少果子。

思路:WC的无脑动规大水题。随便加个小优化就过了。。

CODE:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 3510
using namespace std;
#define max(a,b) ((a) > (b) ? (a):(b))

int cnt,h,detla;
int src[MAX][MAX],f[MAX][MAX];
int _max[MAX];

int main()
{
    cin >> cnt >> h >> detla;
    memset(_max,0xef,sizeof(_max));
    for(int num,i = 1; i <= cnt; ++i) {
        scanf("%d",&num);
        for(int x,j = 1; j <= num; ++j) {
            scanf("%d",&x);
            ++src[i][x];
        }
    }
    for(int i = 1; i <= cnt; ++i)
        f[i][h] = src[i][h];
    for(int j = h - 1; ~j; --j)
        for(int i = 1; i <= cnt; ++i) {
            f[i][j] = max(f[i][j + 1],_max[j + detla]) + src[i][j];
            _max[j] = max(_max[j],f[i][j]);
        }
    cout << _max[0] << endl;
    return 0;
}

时间: 2024-08-06 11:21:30

BZOJ 1270 Beijing Wc 2008 雷涛的小猫 动态规划的相关文章

[BeijingWc2008][BZOJ1270] 雷涛的小猫|动态规划

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 1002  Solved: 481[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT Source 唉……第一遍写了个超暴力dp直接跑完了50s. f1,f2分别表示 高度为i的最大值,当前高度在第i棵上最大值. #includ

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

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT 思路:保存i+z的max值:上一行的dp值: #include<bits/stdc++.h> using namespace std; #define ll __int64 #define

BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

简单的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) ---------------------------------------------------------

入门动态规划 BZOJ 1270 雷涛的小猫

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 1250  Solved: 643[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT 这个题已经水得不能再水了,然而我还是WA了几次 1 #include<iostream> 2 #include<cstdio>

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

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB Submit: 956  Solved: 457 [Submit][Status] Description   Input Output Sample Input Sample Output 8 HINT dp+优化. dp方程很好想,f[i][j]表示走到第i个柱子高度为j的地方的能获得的最多柿子. f[i][j]=max(f[i][j-1],f[k][j-d

1270: [BeijingWc2008]雷涛的小猫

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 905  Solved: 430[Submit][Status] Description   Input Output Sample Input Sample Output 8 HINT Source 题解:额..这个嘛...首先声明——此程序在BZOJ上交每次都莫名其妙的RE,但是我要到数据后在window下测评怎么测都没出问题,额,求各位也帮我

NOI题库2454 雷涛的小猫

2454:雷涛的小猫 总时间限制: 20000ms 单个测试点时间限制: 10000ms 内存限制: 65536kB 描述 雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学生宿舍管理条例的).在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可爱了. 可是有一天,雷涛下课回到寝室,却发现小猫不见了!经过一番寻找,才发现她正趴在阳台上对窗外的柿子树发呆… 在北京大学的校园里,有许多柿子树,在雷涛所在的宿舍楼前,就有N棵.并且这N棵柿子树每棵的高度都是H.冬天

BZOJ_1270_雷涛的小猫_(动态规划)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1270 有n棵树,高度为h.一只猫从任意一棵树的树顶开始,每次在同一棵树上下降1,或者跳到其他树上同时下降d.它经过的地方的果子都会被吃掉,求落地前最多吃多少果子. 分析 高度低的位置的值肯定是由高度高的位置更新得来的.在某一位置,有两种可能: 1.是从这个树上下降1到达这里的. 2.是从其他树上跳来的.由于可以从任意树上跳来,所有选之前吃果子最多的树. 用dp1[i][j]表示到达第i棵树,

upc 9367 雷涛的小猫

问题 B: [动态规划]雷涛的小猫 时间限制: 1 Sec  内存限制: 128 MB提交: 161  解决: 49[提交] [状态] [讨论版] [命题人:admin] 题目描述 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学生宿舍管理条例的).   在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可爱了.可是有一天,雷涛下课回到寝室,却发现小猫不见了!经过一番寻找,才发现她正趴在阳台上对窗外的柿子树发呆…在北京大学的校园里,有许多柿子树,