zoukankan      html  css  js  c++  java
  • SDUTOJ 2403 单峰序列

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int i,j,js,s[1000],a[1000],b[1000];
        while(~scanf("%d",&js))
        {
            for(i = 0;i < js; i++)
                scanf("%d",&s[i]);
            a[0] = 1;
            int m = 0;
            for(i = 1;i < js; i++,m = 0)
            {
                for(j = 0;j < i; j++)
                    if(s[i] > s[j] && m < a[j]) m = a[j];
                a[i] = m+1;
            }
            int max = -1;
            for(i = 0;i < js; i++)
            {
                if(max < a[i]) max = a[i];
            }
            memset(b,0,sizeof(b));
            b[js-1] = 1;
            for(m = 0,i = js-2;i >= 0; i--,m = 0)
            {
                for(j = js-1; j > i; j--)
                    if(s[i] > s[j] && m < b[j]) m = b[j];
                b[i] = m+1;
            }
            for(i = 0;i < js; i++)
            {
                if(max < b[i]) max = b[i];
            }
            for(i = 0;i < js; i++)
                if(max < a[i]+b[i]-1) max = a[i]+b[i]-1;
            printf("%d\n",max);
        }
        return 0;
    }

      简单的动态规划。

      降序序列可以认为是从后向前的生序序列。

      一开始的时候 把m 初始为 -1 了 WA了两边……

  • 相关阅读:
    分组背包(课题选择)
    和为n的俩个数的最大lcm
    合唱队形(悬线法)
    郊区春游(状压dp)
    三角形最大周长
    取余妹子数
    树形dp旅游
    L1-033 出生年
    L1-043 阅览室
    L1-044. 稳赢
  • 原文地址:https://www.cnblogs.com/zmx354/p/2922867.html
Copyright © 2011-2022 走看看