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;
    }
    
    黎明的朝阳,会为苦难中最坚强的信念升起
  • 相关阅读:
    在Vue中使用Echart图表库。【全网最简单】
    asp.net core的授权过滤器中获取action上的Attribute
    用node.js给C#写一个数据表的实体类生成工具
    node.js操作MySQL数据库
    基于node.js的爬虫框架 node-crawler简单尝试
    Angular双向绑定简单理解
    使用.Net core3.0 开发斗图小程序后端+斗图小程序
    Django的命令操作,python
    python,函数式编程
    python 推导式的用法
  • 原文地址:https://www.cnblogs.com/Dawn-Star/p/9652995.html
Copyright © 2011-2022 走看看