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
  • 相关阅读:
    表示数值的字符串
    正则表达式匹配
    删除链表中重复的结点
    数值的整数次方
    [CSP-S模拟测试]:大新闻(主席树)
    [CSP-S模拟测试]:密码(AC自动机+DP)
    [CSP-S模拟测试]:壕游戏(费用流)
    [CSP-S模拟测试]:山洞(DP+快速幂)
    [CSP-S模拟测试]:阴阳(容斥+计数+递推)
    [CSP-S模拟测试]:虎(DFS+贪心)
  • 原文地址:https://www.cnblogs.com/Bloodline/p/5492959.html
Copyright © 2011-2022 走看看