• [bzoj1270 BJWC2008]雷涛的小猫


    现在也就只能写这种水题了。。

    题目链接

    容易想到对于每个位置,有两种来源:

    从同一棵树的上方1米跳下来/从其他树上方del米跳下来

    用f[i][j]表示高度为i,第i棵树的最优解

    f[i][j]=num[i][j]+max(f[i+1][j],f[i+del][k])

    O(n^2*h)

    考虑空间换时间

    对于从上方del米掉下来,只需每个高度都记录一个最优解即可

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 using namespace std;
     6 
     7 const int Maxn=5000,Maxh=2000;
     8 int n,h,delta;
     9 int F1[Maxh+10][Maxn+10],F2[Maxh+10];
    10 
    11 void init(){
    12     scanf("%d%d%d",&n,&h,&delta);
    13     memset(F1,0,sizeof(F1));
    14     memset(F2,0,sizeof(F2));    
    15     int T=0,t=0;
    16     for (int i=1;i<=n;i++){
    17         scanf("%d",&T);
    18         for (int j=1;j<=T;j++){
    19             scanf("%d",&t);
    20             F1[t][i]++;
    21         }
    22     }    
    23 } 
    24 void DP(){
    25     for (int Ht=h-1;Ht>=0;Ht--){
    26         for (int i=1;i<=n;i++){
    27             int num=F1[Ht+1][i];
    28             if (Ht+delta<=n)
    29               num=max(num,F2[Ht+delta]);
    30             F1[Ht][i]+=num;
    31             F2[Ht]=max(F2[Ht],F1[Ht][i]); 
    32         }
    33     }    
    34 }
    35 
    36 int main(){
    37     init();
    38     DP();
    39     int ans=0;
    40     for (int i=1;i<=n;i++)
    41       ans=max(ans,F1[0][i]);
    42     printf("%d",ans);
    43     return 0;  
    44 } 
    View Code
  • 相关阅读:
    Ajax缓存处理
    单例模式
    正则表达式基础
    springmvc请求参数的绑定和获取
    springmvc返回视图(解析)
    RequestMapping请求映射方式
    springmvc注解基本入门
    springmvc简介
    Mybatis入门-动态sql
    Mybatis映射配置文件Mapper.xml详解
  • 原文地址:https://www.cnblogs.com/vincent-hwh/p/6727110.html
Copyright © 2020-2023  润新知