zoukankan      html  css  js  c++  java
  • 【动态规划DP】[USACO16OPEN]248

    题目描述

    Bessie likes downloading games to play on her cell phone, even though she doesfind the small touch screen rather cumbersome to use with her large hooves.
    She is particularly intrigued by the current game she is playing.The game starts with a sequence of N positive integers (2≤N≤248), each in the range 1..40 . In one move, Bessie cantake two adjacent numbers with equal values and replace them a singlenumber of value one greater (e.g., she might replace two adjacent 7swith an 8). The goal is to maximize the value of the largest numberpresent in the sequence at the end of the game. Please help Bessiescore as highly as possible!
    给定一个1*n的地图,在里面玩2048,每次可以合并相邻两个(数值范围1-40),问最大能合出多少。注意合并后的数值并非加倍而是+1,例如2与2合并后的数值为3。

    分析

    区间DP,我们按照惯例先定义状态
    F[i][j]表示i到j的最大的答案。
    那么根据题意,方程为F[i][j]=Max(F[i][j],F[i][k]+1) (F[i][k]=F[k+1][j])

    AC代码

    #include <bits/stdc++.h>
    using namespace std;
    #define ms(a,b) memset(a,b,sizeof(a))
    typedef long long ll;
    const int maxn=255;
    int n;
    int a[maxn];
    int f[maxn][maxn];
    inline int read(){
        int X=0,w=0; char ch=0;
        while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
        while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        return w?-X:X;
    }
    int main(int argc,char* argv[]){
        n=read();
        for (int i=1;i<=n;i++) a[i]=read(),f[i][i]=a[i];
        int ans=0;
        for (int i=n;i>=1;i--) {
            for (int j=i;j<=n;j++) {
                for (int k=i;k<=j;k++) {
                    if (f[i][k]==f[k+1][j]) f[i][j]=max(f[i][j],f[i][k]+1);
                    ans=max(ans,f[i][j]);
                }
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    
    黎明的朝阳,会为苦难中最坚强的信念升起
  • 相关阅读:
    编程实现Windows系统自动登录
    IOS开发笔记
    所有的GUI Toolkit,类型之多真开眼界
    文件保护DEP
    Delphi 重启应用程序(创建Bat文件的Process)
    Linux的几个概念,常用命令学习
    Delphi内存操作API函数(备查,并一一学习)
    Servle中的会话管理
    Windows软件在Linux上的等价/替代/模仿软件列表 (抄一个)
    Go 的文件系统抽象 Afero
  • 原文地址:https://www.cnblogs.com/Dawn-Star/p/9652995.html
Copyright © 2011-2022 走看看