zoukankan      html  css  js  c++  java
  • POJ 2385 DP

    竟然自己想出转移方程了 (吃鲸)

    (这是水题(尴尬))

    题意:

    这里写图片描述
    这里写图片描述
    这里写图片描述

    思路:
    i表示第i个苹果,选了m-j+1次
    初始化
    f[i][m+1][0]=f[i-1][m+1][0]+(a[i]==1);
    f[i][m+1][0]=f[i-1][m+1][0]+(a[i]==1);
    转移
    f[i][j][0]=max(f[i-1][j][0],f[i-1][j+1][1])+(a[i]==1);
    f[i][j][1]=max(f[i-1][j][1],f[i-1][j+1][0])+(a[i]==2);

    //By SiriusRen
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int n,m,a[1050],f[1050][35][2];
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        for(int i=1;i<=n;i++)f[i][m+1][0]=f[i-1][m+1][0]+(a[i]==1);
        for(int i=1;i<=n;i++)f[i][m+1][1]=f[i-1][m+1][1]+(a[i]==2);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++){
                f[i][j][0]=max(f[i-1][j][0],f[i-1][j+1][1])+(a[i]==1);
                f[i][j][1]=max(f[i-1][j][1],f[i-1][j+1][0])+(a[i]==2);
            }
        printf("%d
    ",max(f[n][1][1],f[n][1][0]));
    }

    这里写图片描述

  • 相关阅读:
    linux固定ip设置
    经典shell面试题
    shell学习笔记
    从tcp到netty(二)
    Mysql复习
    从tcp到netty(一)
    浏览器展示图片(非下载)- java
    异常总结
    反射获取属性值并设置属性值
    TreeMap解析
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532297.html
Copyright © 2011-2022 走看看