• BZOJ 1270 BeijingWc2008 雷涛的小猫


    1270: [BeijingWc2008]雷涛的小猫

    Time Limit: 50 Sec  Memory Limit: 162 MB
    Submit: 1351  Solved: 716
    [Submit][Status][Discuss]

    Description

     

    Input

    Output

    Sample Input

    Sample Output

    HINT

    Source

    很简单的dp,f1[i]表示高度为i的时候的最大值,f2[i][j]表示小猫在第i个柱子高度为j的时候的最大值,j这一维可以随着高度的枚举而省去

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    inline int read(){
        int x=0;int f=1;char ch=getchar();
        while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
        while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    const int MAXN=1e4+10;
    namespace zhangenming{
        int f1[5010]={},f2[5100]={},map[5010][2010],n,h,dep;
        void init(){
            n=read();h=read();dep=read();
            for(int i=1;i<=n;i++){
                int xx=read();
                for(int j=1;j<=xx;j++){
                    int yy=read();
                    map[i][yy]++;
                }
            }
        }
        void dp(){
            for(int i=h;i>=1;i--){
                for(int j=1;j<=n;j++){
                    f2[j]=max(f2[j],f2[j]+map[j][i]);
                    f2[j]=max(f1[i+dep]+map[j][i],f2[j]);
                    f1[i]=max(f1[i],f2[j]);
                }
            }
            cout<<f1[1]<<endl;
        }
    }
    int main(){
        using namespace zhangenming;
        init();
        dp();
        return 0;
    }
    

      

  • 相关阅读:
    hihocoder1634 Puzzle Game
    hihocoder1580 Matrix
    BZOJ3036 绿豆蛙的归宿
    CF|codeforces 280C Game on Tree
    [SDOI2011] 计算器
    [SCOI2007] 修车
    [JSOI2008] 球形空间产生器sphere
    APIO2012 派遣dispatching | 左偏树
    OI数据结构&&分治 简单学习笔记
    BZOJ3307 雨天的尾巴
  • 原文地址:https://www.cnblogs.com/something-for-nothing/p/8108444.html
Copyright © 2020-2023  润新知