zoukankan      html  css  js  c++  java
  • bzoj4580: [Usaco2016 Open]248

    bzoj4580: [Usaco2016 Open]248

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 23  Solved: 21
    [Submit][Status][Discuss]

    Description

    Bessie likes downloading games to play on her cell phone, even though she does find the small touch 
    screen rather cumbersome to use with her large hooves.She is particularly intrigued by the current g
    ame she is playing. The game starts with a sequence of NN positive integers (2≤N≤248), each in the
     range 1…40. In one move, Bessie can take two adjacent numbers with equal values and replace them a
     single number of value one greater (e.g., she might replace two adjacent 7s with an 8). The goal is
     to maximize the value of the largest number present in the sequence at the end of the game. Please 
    help Bessie score as highly as possible!

    Input

    The first line of input contains N, and the next N lines give the sequence of N numbers at the start
     of the game.

    Output

    Please output the largest integer Bessie can generate.

    Sample Input

    4
    1
    1
    1
    2

    Sample Output

    3
    //In this example shown here, Bessie first merges the second and third 1s to obtain the sequence 1 2 2
    , and then she merges the 2s into a 3. Note that it is not optimal to join the first two 1s.

    HINT

     

    Source

    显然我们可以区间DP。。。

     1 #include<bits/stdc++.h>
     2 #define rep(i,l,r) for(int i=l;i<=r;i++)
     3 #define N 300
     4 int n,ans,s[N],f[N][N],j;
     5 using namespace std;
     6 int main () {
     7      scanf("%d",&n); rep(i,1,n) scanf("%d",&s[i]),ans=max(ans,s[i]);
     8      rep(i,1,n) f[i][i]=s[i];
     9      rep(len,2,n)  for(int i=1;i+len-1<=n;i++) {
    10           j=i+len-1;
    11           f[i][j]=-1;
    12           rep(k,i,j-1) if(f[i][k]==f[k+1][j]) f[i][j]=max(f[i][j],f[i][k]+1);
    13           ans=max(ans,f[i][j]);
    14      }
    15      cout<<ans;
    16 }
    View Code
  • 相关阅读:
    python之编写购物车(第二天)
    day6作业--游戏人生
    day7 socket网络编程基础
    day7 --socket网络编程基础
    Python类和人类
    day7 socket网络编程
    day7异常处理
    day7面向对象--反射
    day6面向对象--类的特殊成员方法
    使用BigDecimal来进行精确计算
  • 原文地址:https://www.cnblogs.com/Bloodline/p/5492959.html
Copyright © 2011-2022 走看看